提问者:小点点

如何使用charat在字符串中查找char的位置


所以我不想用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));
}
}

共1个答案

匿名用户

请记住,A的ascii字符从65开始,所以如果用户输入A3,那么您实际上是在使用abc.charat(65),这显然不是您想要的。

相反,您需要找到数组中字符的索引...

int index = abc.indexOf(row);

查看String#indexOf了解更多详细信息

您可能还想使用< code > character . toupper case 将用户输入的< code>char转换为大写,这将使搜索< code >字符串更加容易

ps- 也像行 - 65(或行 - “A”,如果很难记住)会给你相同的结果;)