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

【字号: 日期:2024-02-23浏览:45作者:雯心
如何解决charAt()。equals()导致“无法取消引用char”?

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

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而不是aString。该equals()方法只能用于对象。Char是没有方法的原始数据类型。在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);

相关文章: