Мне нужен контекст для использования фрагмента arrayAdapter IN, когда я использовал ошибку getActivity, но когда я заменяю его getContext, он работает для меня
listView LV=getView().findViewById(R.id.listOFsensors);
LV.setAdapter(new ArrayAdapter<String>(getContext(),android.R.layout.simple_list_item_1 ,listSensorType));
Используйте Scalar::Util::looks_like_number()
, который использует внутренний Perl C looks_like_number API () функция, которая является, вероятно, самым эффективным способом сделать это. Обратите внимание, что строки "inf" и "бесконечность" рассматривают как числа.
#!/usr/bin/perl
use warnings;
use strict;
use Scalar::Util qw(looks_like_number);
my @exprs = qw(1 5.25 0.001 1.3e8 foo bar 1dd inf infinity);
foreach my $expr (@exprs) {
print "$expr is", looks_like_number($expr) ? '' : ' not', " a number\n";
}
Дает этот вывод:
1 is a number
5.25 is a number
0.001 is a number
1.3e8 is a number
foo is not a number
bar is not a number
1dd is not a number
inf is a number
infinity is a number
looks_like_number
Я не полагаю, что существует что-либо встроенное, чтобы сделать это. Для больше, чем Вы когда-либо хотели видеть на предмете, видеть Perlmonks при Обнаружении Числового
Не прекрасный, но можно использовать regex:
sub isnumber
{
shift =~ /^-?\d+\.?\d*$/;
}
Обычно проверка числа сделана с регулярными выражениями. Этот код определит, является ли что-то числовым, а также проверка на неопределенные переменные относительно не бросают предупреждения:
sub is_integer {
defined $_[0] && $_[0] =~ /^[+-]?\d+$/;
}
sub is_float {
defined $_[0] && $_[0] =~ /^[+-]?\d+(\.\d+)?$/;
}
Вот некоторый материал чтения, на который необходимо посмотреть.
Проверьте модуль CPAN Regexp:: Распространенный . Я думаю, что это делает точно, в чем Вы нуждаетесь, и обрабатывает все пограничные случаи (например, вещественные числа, экспоненциальное представление, и т.д.). например,
use Regexp::Common;
if ($var =~ /$RE{num}{real}/) { print q{a number}; }
Немного больше устойчивого regex может быть найдено в Regexp:: Распространенный .
Это кажется, что Вы хотите знать, думает ли Perl, что переменная является числовой. Вот функция, которая захватывает то предупреждение:
sub is_number{
my $n = shift;
my $ret = 1;
$SIG{"__WARN__"} = sub {$ret = 0};
eval { my $x = $n + 1 };
return $ret
}
Другая опция состоит в том, чтобы выключить предупреждение локально:
{
no warnings "numeric"; # Ignore "isn't numeric" warning
... # Use a variable that might not be numeric
}
Примечание, что нечисловые переменные будут тихо преобразованы в 0, который является, вероятно, что Вы хотели так или иначе.