Сравнение 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
например, пространство.
первый символ вашей строки -'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) == '-'
.