gpt4 book ai didi

java - 为什么这段代码返回-1?

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

我有一些代码,第 33 行返回 -1,因为它找不到该值。但为什么找不到呢?!我认为这可能与 char[] 有关,但我在这里真的不太确定。

也可能是因为第 31 行(int temp),但我真的不知道。

import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;

class Main {

public static void main(String args[]) {

HashMap<Integer, String> map = new HashMap<Integer, String>();

System.out.println("Enter your string to cipher: ");

Scanner s = new Scanner(System.in);
String str = s.nextLine();

char[] letters = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
Integer[] numbers = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25};

if (str instanceof String) {
System.out.println("Input received: OK.");
} else {
System.out.println("Error! You cannot input numbers. Exiting program...");
System.exit(1);
}

for (int i = 0; i < str.length(); i++) {
char l = str.charAt(i);

System.out.println(l);

int temp = Arrays.asList(letters).indexOf(l);

System.out.println(temp);


}


}

}

最佳答案

将变量“字母”的类型更改为 Character[]它会起作用的。

额外的小优化建议:移动此行int temp = Arrays.asList(letters).indexOf(l)在循环之外,因为您在每次迭代时都创建一个列表。

还要决定是否要使用数组或像char[]这样的数组来使用通用集合。等等

关于java - 为什么这段代码返回-1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45467606/

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