Java 如何使用charAt查找字符串中字符的位置
所以我不想用ascii表来做这个。我想让用户输入一个字母数字(如A3),然后取字母表(A)并在字符串ABC中找到它,所以我会给我一个介于1-9之间的数字,而不是ascii值。这将使我更容易在以后放入2d数组 但是,当我使用System.out.println(abc.charAt(row))时;它会说它超出了边界,因为它使用了ascii值。我怎样才能使它不会Java 如何使用charAt查找字符串中字符的位置,java,Java,所以我不想用ascii表来做这个。我想让用户输入一个字母数字(如A3),然后取字母表(A)并在字符串ABC中找到它,所以我会给我一个介于1-9之间的数字,而不是ascii值。这将使我更容易在以后放入2d数组 但是,当我使用System.out.println(abc.charAt(row))时;它会说它超出了边界,因为它使用了ascii值。我怎样才能使它不会 public static void main(String[]args){ Scanner k = ne
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);
请查看以了解更多详细信息
您可能还希望使用Character.toUpperCase
将用户输入的char
转换为大写,这将使搜索字符串变得更容易
ps-还有类似于行-65
(或者行-A'
如果这很难记住)的东西会给你同样的结果;) 记住,A
的ascii字符从65开始,因此如果用户输入A3
,那么您实际上使用的是abc.charAt(65)
,这显然不是您想要的
相反,您需要在数组中查找字符的索引
int index = abc.indexOf(row);
请查看以了解更多详细信息
您可能还希望使用Character.toUpperCase
将用户输入的char
转换为大写,这将使搜索字符串变得更容易
ps-还有类似于行-65
(或者行-A'
如果这很难记住)的东西会给你同样的结果;) ???