charAt()。equals()导致“无法取消引用char”

我正在尝试检查字符串在不同位置处的连字符(对于电话号码,因为输入有所不同),但是我一直收到错误消息

不能取消引用char

码:

do {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.print("Enter String");

String raw = br.readLine();

if (raw.length() < 10) {

System.out.println("");

System.out.println("Please input a valid phone number of at least 10 digits/letters");

System.out.println("");

} else {

if (raw.charAt(3).equals('-') && raw.charAt(7).equals('-')) {

System.out.println("2 Hyphens at 3 and 7");

} else if (raw.charAt(3).equals('-')

&& raw.charAt(8).equals('-')) {

System.out.println("2 Hyphens at 3 and 8");

} else if (raw.charAt(3).equals('-')

&& raw.charAt(9).equals('-')) {

System.out.println("2 Hyphens at 3 and 9");

}

}

} while (1 < 2);

回答:

如果您使用类似的方法,它将起作用:

  if (raw.charAt(3) == '-' && raw.charAt(7) == '-') {

System.out.println("2 Hyphens at 3 and 7");

} else if (raw.charAt(3) == '-' && raw.charAt(8) == '-') {

System.out.println("2 Hyphens at 3 and 8");

} else if (raw.charAt(3) == '-' && raw.charAt(9) == '-') {

System.out.println("2 Hyphens at 3 and 9");

}

问题是raw.charAt(n)返回a char而不是a

String。该equals()方法只能用于对象。Char是没有方法的原始数据类型。在char上,您应该使用==或运算符!=

以上是 charAt()。equals()导致“无法取消引用char” 的全部内容, 来源链接: utcz.com/qa/415712.html

回到顶部