我怎么做它所以nextLine等于数组中的两个字符串

时间:2018-01-31 13:51:07

标签: java

我正在尝试获取字母,以显示每个输入字母的索引。例如,当我输入while(sqlite3_step(stmt) == SQLITE_ROW){ let email = String(cString: sqlite3_column_text(stmt, 0)) let name = String(cString: sqlite3_column_text(stmt, 1)) let age = sqlite3_column_int(stmt, 2) let gender = String(cString: sqlite3_column_text(stmt, 3)) userList.append(User(age: Int(age), name: name, email: email, gender: gender)) print("user saved successfully") } 时,它返回0,这是索引。目前,如果我输入带有字母aa的单词,它将不会返回任何内容。但它应该返回0和1。

b

5 个答案:

答案 0 :(得分:2)

你必须以同样的方式对待这两个元素,如:

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

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

答案 1 :(得分:0)

您需要逐个循环输入字符才能返回多个字母的索引号

答案 2 :(得分:0)

尝试这样的想法:

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);

答案 3 :(得分:0)

你可以试试这个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");
            }

        }
    }
}

答案 4 :(得分:0)

作为@GhostCat answered,您不是要逐个比较输入中的字符与数组中的值。另一种方法是使用内置的String::indexOf方法让这更容易:

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

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