所以我不想用ascii表来做这件事。我想让用户输入一个字母数字(例如A3),然后取字母表(A)并在字符串ABC中找到它,这样它会给我一个介于1-9之间的数字,而不是ascii值。这将使我以后更容易放入2d阵列。
然而当我使用system . out . println(ABC . charat(row));它会说它是越界异常,因为它使用了ascii值。我怎样才能让它不
public static void main(String[]args){
Scanner k = new Scanner(System.in);
String abc = "ABCDEFGHIJ";
String ab = "abcdefghij";
abc.equals(ab);
System.out.println("Please enter the attack location:");
while (!k.hasNext("[A-J a-j]+[0-9]")) {
System.out.println("Wrong");
k.next();
}
String location = k.next();
char row = location.charAt(0);
int num = (int) location.charAt(1);
System.out.println(abc.charAt(row));
}
}
请记住,A
的ascii字符从65开始,所以如果用户输入A3
,那么您实际上是在使用abc.charat(65)
,这显然不是您想要的。
相反,您需要找到数组中字符的索引...
int index = abc.indexOf(row);
查看String#indexOf
了解更多详细信息
您可能还想使用< code > character . toupper case 将用户输入的< code>char转换为大写,这将使搜索< code >字符串更加容易
ps- 也像行 - 65
(或行 - “A”
,如果很难记住)会给你相同的结果;)