Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Char.IsDigit()
подмножество Char.IsNumber()
.
Некоторые символы, которые являются 'числовыми', но не цифры, включают 0x00b2 и 0x00b3, которые преобразовываются в верхний индекс 2 и 3 ('ВІ' и 'Ві') и глифы, которые являются частями, такими как 'Вј', 'ВЅ', и 'Вѕ'.
Примечание, что существует довольно много символов, что IsDigit()
возвраты true
для этого не находятся в диапазоне ASCII 0x30 к 0x39, такому как эти тайские символы цифры: 'а№ђ' '๑' 'а№’' 'а№\“' 'а№\”' 'а№\•' 'а№–' 'а№ —' 'а№ ' 'а№™'.
Этот отрывок кода говорит Вам, какие кодовые точки отличаются:
static private void test()
{
for (int i = 0; i <= 0xffff; ++i)
{
char c = (char) i;
if (Char.IsDigit( c) != Char.IsNumber( c)) {
Console.WriteLine( "Char value {0:x} IsDigit() = {1}, IsNumber() = {2}", i, Char.IsDigit( c), Char.IsNumber( c));
}
}
}
Я нашел ответ:
Символ. IsNumber () определяет, имеет ли Символ какую-либо числовую категорию Unicode. Это контрастирует с IsDigit, который определяет, является ли Символ основанием 10 цифр.
Верные номера являются членами следующих категорий в UnicodeCategory:
DecimalDigitNumber
символ Десятичной цифры, то есть, символ в диапазоне 0 до 9. Показанный обозначением Unicode "Без обозначения даты" (число, десятичная цифра). Значение равняется 8.LetterNumber
Число, представленное буквой, вместо десятичной цифры, например, Римской цифры для пять, который является "V". Индикатор показан обозначением Unicode "Nl" (число, буква). Значение равняется 9.OtherNumber
Число, которое не является ни десятичной цифрой, ни числом буквы, например, часть ВЅ. Индикатор показан обозначением Unicode "Нет" (число, другой). Значение равняется 10.
Char.IsDigit
: DecimalDigitNumber
категория только. Char.IsNumber
: DecimalDigitNumber
, LetterNumber
, или OtherNumber
категория.