Сравнение Java String/char charAt ()

Я видел различные сравнения, которые вы можете сделать с charAt() метод.

однако, я не могу понять некоторые из них.

String str = "asdf";
str.charAt(0) == '-'; // What does it mean when it's equal to '-'?


char c = '3';
if (c < '9') // How are char variables compared with the `<` operator?

любая помощь будет оценили.

5 ответов


// что это значит, когда оно равно' -'?

каждая буква и символ-это символ. Вы можете посмотреть на первый символ строки и проверить совпадение.

в этом случае вы получаете первый символ и видите, если это минус символ. Это знак "минус"(char) 45 см. ниже

/ / как переменные char сравниваются с < оператор?

в Java все символы на самом деле 16-разрядные беззнаковые числа. Каждый символ имеет номер, основанный на нем unicode. например,'9' характер (char) 57 это сравнение верно для любого символа меньше кода 9 например, пространство.

enter image description here

первый символ вашей строки -'a' что это (char) 97 так (char) 97 < (char) 57 ложно.


String str = "asdf";
String output = " ";
if(str.charAt(0) == '-'){
  // What does it mean when it's equal to '-'?
  output= "- exists in the first index of the String";
}
else {
    output="- doesn't exists in the first index of the String"; 
}
System.out.println(output);

он проверяет, существует ли этот символ в индексе 0, это сравнение.

как if (c < '9'), сравниваются значения ascii c и 9. Я не знаю, почему вы проверяете, если ascii-эквивалент c меньше, чем ascii-эквивалент "9".

Если вы хотите получить значение ascii любого символа, то вы можете:

char character = 'c';
int ascii = character;
System.out.println(ascii);

str.charAt(0) == '-'; возвращает логическое значение , в данном случае false.

if (c < '9') сравнивает значение ascii '3 'со значением ascii' 9 ' и снова возвращает логическое значение.


str.charAt(0) == '-'

это утверждение возвращает true, если символ в точке 0 является ' - ' и false в противном случае.

if (c < '9')

это сравнивает значение ascii c со значением ascii '9' в этом случае 99 и 57 соответственно.


символы являются примитивным типом в Java, что означает, что это не сложный объект. Как следствие, каждый раз, когда вы делаете сравнение между chars, вы напрямую сравниваете их значения.

символы Java определяются в соответствии с исходной спецификацией unicode, которая дает каждому символу 16-битное значение. Это значения, которые Java сравнивает, когда вы сравниваете что-то вроде c>'3' или str.charAt(0) == '-'.