(Java)myString.charAt的问题(i)>&引用;1“;或myString.charAt(i)<&引用;A「;
我有一个汽车物体,它应该有一个特征。该特性应该具有以下要求:以两个大写字母开头,后跟1-9之间的数字,后跟4个0-9之间的数字 公共无效写入特征(){(Java)myString.charAt的问题(i)>&引用;1“;或myString.charAt(i)<&引用;A「;,java,string,Java,String,我有一个汽车物体,它应该有一个特征。该特性应该具有以下要求:以两个大写字母开头,后跟1-9之间的数字,后跟4个0-9之间的数字 公共无效写入特征(){ System.out.println(“写下汽车的特性”); 字符串特征=kb.nextLine(); 进步=错误; 如果(特征长度()!=7){ System.out.println(“字符串不是7个字母/数字长”); 进步=错误; } 对于(int i=0;i
System.out.println(“写下汽车的特性”);
字符串特征=kb.nextLine();
进步=错误;
如果(特征长度()!=7){
System.out.println(“字符串不是7个字母/数字长”);
进步=错误;
}
对于(int i=0;i<2;++i){
if(characteristic.charAt(i)<“A”| | characteristic.charAt(i)>“Z”){
System.out.println(“字符号”+i+“无效”);
进步=错误;
}
}
if(特征字符(3)<“1”|特征字符(3)>“9”)
进步=错误;
对于(int j=3;j<7;++j){
如果(特征字符(j)<0 | |特征字符(j)>9)
进步=错误;
}
if(progress==false){
System.out.println(“特征值将为null”);
特征=零;
}
如果(进度==真)
汽车特性;
}
我在“if(characteristic.charAt(I)<”a“| | characteristic.charAt(I)>”Z“{”行中遇到了问题
编译器说“参数类型char,String的运算符<未定义”
非常感谢您的帮助。在Java中,您可以将字符(
char
)与字符进行比较,但不能将字符与String
进行比较charAt
返回字符,因此必须将其结果与字符进行比较
这些是String
"A" "Z" "1" "9"
这些都是人物
'A' 'Z' '1' '9'
您可以将字符与整数(
int
)进行比较,但结果可能不是您想要的结果。因此,在下面的代码中:
for (int j = 3; j < 7; ++j){
if (characteristic.charAt(j) < 0 || characteristic.charAt(j) > 9)
这里不应该将
progress
设置为true
吗?对字符使用单引号,对字符串使用双引号。
characteristic.charAt(3) < '1'
特征字符(3)<'1'
单引号和双引号在java中是有意义的
对于您的情况,最适合的是正则表达式。我当然会在本页上查看有关字符比较的其他答案。不过,我可能会建议一种不同的方法: 以两个大写字母开头,后跟1-9之间的数字 从0到9的4个数字 然后进行调查,比如:
[A-Z]{2}[1-9][0-9]{4}
将满足上述要求。将双引号替换为单引号 在将数字与字符进行比较时,您还必须在数字周围加上单引号,即使编译器没有抱怨。这样比较
characteristic.charAt(3) < '1'
特征字符(3)<'1'
首先,您可以使用regexp实现这一目标:
[A-Z]{2}[1-9][0-9]{4}
(阅读文章了解如何使用它)
如果您想在开始时执行此操作,请使用单引号,而不是带字符的双引号。例如,
“a”
->'a'
如果您想为字符
赋值,请使用单引号。如果它是字符串
请使用双引号
char myChar='a';
String myString="a";
所以
characteristic.charAt(3)<“1”应更改为characteristic.charAt(3)<“1”
这些是字母和数字AZ19
characteristic.charAt(3) < '1'
char myChar='a';
String myString="a";
characteristic.charAt(3) < "1" should change as characteristic.charAt(3) < '1'