Java 如何使nextLine等于数组中的两个字符串

Java 如何使nextLine等于数组中的两个字符串,java,Java,我试图让我的字符串字母显示作为输入的每个字母的索引。例如,当我输入a时,它返回0,这是索引。目前,如果我输入字母a和b的单词,它不会返回任何内容。但它应该返回0和1 String[] code = {"a", "b","c", "d", "e"}; String letters=input.nextLine(); for (int i=0;i<code.length;i++) { if (letters.equals(code[i])) { System.out

我试图让我的字符串字母显示作为输入的每个字母的索引。例如,当我输入
a
时,它返回0,这是索引。目前,如果我输入字母
a
b
的单词,它不会返回任何内容。但它应该返回0和1

String[] code = {"a", "b","c", "d", "e"};

String letters=input.nextLine();

for (int i=0;i<code.length;i++) {
    if (letters.equals(code[i])) {
        System.out.print(i);
    }
}
String[]code={“a”、“b”、“c”、“d”、“e”};
字符串字母=input.nextLine();

对于(int i=0;i您需要逐个字符循环输入,以便返回多个字母的索引号,您必须以相同的方式处理这两个元素,如:

for (char charFromUser : letters.toCharArray()) {
  for (int i=0; i < code.length; i++) {
    if (code[i] == charFromUser) {
      ... print i
for(char charFromUser:letters.toCharArray()){
for(int i=0;i

换句话说:您打算一个接一个地比较字符。然后在用户提供的完整的字符串上使用
equals()
,对您没有帮助。

尝试以下方法:

char[] List={'a','b','c','d'};

int count=0;
for(int i=0;i<List.length;i++){
    for (int j=0;j<input.length();j++) {
        if(input.charAt(j)==List[i]){
            count++;
        }
    }
}
System.out.println(count);
char[]List={'a','b','c','d'};
整数计数=0;

对于(inti=0;i您可以尝试使用此agine

public class StringTest {
    public static void main(String[] args) {
        String[] code = {"a", "b", "c", "d", "e"};

        Scanner input = new Scanner(System.in);
        while (true) {
            System.out.printf("please input:");
            String letters = input.nextLine();
            boolean isMatch = false;
            for (int i = 0; i < code.length; i++) {

                if (letters.equals(code[i])) {
                    isMatch = true;
                    System.out.println(i);
                }
            }

            if (!isMatch) {
                System.out.println("not equal");
            }

        }
    }
}
公共类StringTest{
公共静态void main(字符串[]args){
字符串[]代码={“a”、“b”、“c”、“d”、“e”};
扫描仪输入=新扫描仪(System.in);
while(true){
System.out.printf(“请输入:”);
字符串字母=input.nextLine();
布尔值isMatch=false;
for(int i=0;i
因为,您没有将输入中的字符逐个与数组中的值进行比较。另一种选择是使用内置方法来更轻松地进行比较:

String code = "abcde";
String letters = input.nextLine();

for (char c : letters.toCharArray()) {
    System.out.print(code.indexOf(c));
}
  • 输入>>ab
  • 输出>>01

嗯..你期望什么?“ab”不是一个带“a”、“b”、“c”、“d”、“e”的值,所以你的等号不会帮你。你想在“字母”中每个字母出现的地方打印代码变量的索引吗?
nextLine()
-所以只有当它包含在单独的一行中时?所以“ab”不同于第一行中的“a”,然后是“b”在第二行。看起来你会想用不同的方式重复这个问题。也许你的问题有点不明确。谢谢你的回复!我在问,是可以用nextLine来完成,还是应该用其他的方法