Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(Java)myString.charAt的问题(i)>&引用;1“;或myString.charAt(i)<&引用;A「;_Java_String - Fatal编程技术网

(Java)myString.charAt的问题(i)>&引用;1“;或myString.charAt(i)<&引用;A「;

(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

我有一个汽车物体,它应该有一个特征。该特性应该具有以下要求:以两个大写字母开头,后跟1-9之间的数字,后跟4个0-9之间的数字

公共无效写入特征(){

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'