如何让用户在字母数组中搜索字母?

时间:2014-10-26 20:57:13

标签: java arrays

从用户处获得一封信。此方法验证它是有效字母还是退出字符'!'。它最终会继续要求字符,然后一旦用户完成,他们将键入'!'以使循环结束并继续打印他们的字符列表

public static String isValidLetter(){
    char[] charArray;
    charArray = new char[11];
    charArray[0] ='C';
    charArray[1] ='E';
    charArray[2] ='F';
    charArray[3] ='H';
    charArray[4] ='I';
    charArray[5] ='J';
    charArray[6] ='L';
    charArray[7] ='O';
    charArray[8] ='P';
    charArray[9] ='S';
    charArray[10] ='T';
    charArray[11] ='U';

    String input;
    char letter;
    Scanner kb = new Scanner(System.in);

    System.out.println("Enter a single character: ");
    input=kb.nextLine();
    letter = input.charAt(0);

3 个答案:

答案 0 :(得分:0)

从控制台读取字符串..输入“a”,输入“b”,输入,“!”,输入

import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        Scanner scann = new Scanner(System.in);
        List<String> letterWords = new LinkedList<String>();
        String str = null;
        while (!"!".equals(str)) {
            str = scann.next();
            letterWords.add(str);
        }
        for (String word : letterWords) {
            System.out.println(word);
        }
        scann.close();
    }
}

答案 1 :(得分:0)

如果你只想拥有一个&#34;集合&#34;有效字符,然后您也可以使用String而不是数组。搜索它会更容易,它可以避免像您的示例中那样的错误(您已经初始化了大小为11的数组,但是您正在插入12元素):

public static boolean isValidLetter(final char character) {
    final String validCharacters = "CEFHIJLOPSTU";
    return validCharacters.contains(String.valueOf(character));
}

此方法需要单个char,如果有效,则返回true,否则返回false。请注意,此检查为case sensitive

您可以像这样使用该方法:

final Scanner scan = new Scanner(System.in);
String input;
while (!(input = scan.nextLine()).equals("!")) {
    if (!input.isEmpty() && isValidLetter(input.charAt(0))) {
        // ... store valid input
        System.out.println("valid");
    }
}

此循环请求用户输入,直到他输入!。我省略了存储部分。你最后要做到这一点。

答案 2 :(得分:0)

修改isValidLetter方法以返回布尔值 修改isValidLetter方法以获取char作为参数 在isValidLetter中,尝试使用辅助函数找到一个字母,如:

static boolean contains(char c, char[] array) {
    for (char x : array) {
        if (x == c) {
            return true;
        }
    }
    return false;
}

在代码中需要输入的地方(或主要用于测试),请求用户输入(正如您在isValidLetter中所做的那样)。执行循环,询问输入,直到它是正确的,或直到它是你的结束字符。

我不会故意发布完整的解决方案代码,因为您最好使用代码并学习。我只给出了如何尝试的指示;当然,这不是唯一的方法,但它适合你已经开始的。