gpt4 book ai didi

java - 如何使用 charAt 查找字符串中字符的位置

转载 作者:行者123 更新时间:2023-12-01 21:49:50 25 4
gpt4 key购买 nike

所以我不想使用 ascii 表来做到这一点。我想让用户输入一个字母数字(例如 A3),然后获取字母表(A)并在字符串 ABC 中找到它,这样它就会给我一个 1-9 之间的数字,而不是 ascii 值。这将使我以后更容易放入二维数组。

但是当我使用 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了解更多详情

您可能还想使用 Character.toUpperCase 将用户输入的 char 转换为大写,这样可以更轻松地搜索您的String

ps- 类似 row - 65 (或 row - 'A' 如果很难记住的话)也会给你相同的结果;)

关于java - 如何使用 charAt 查找字符串中字符的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35376135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com