如果您使用类似的方法,它将起作用:
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);