从用户处获得一封信。此方法验证它是有效字母还是退出字符'!'。它最终会继续要求字符,然后一旦用户完成,他们将键入'!'以使循环结束并继续打印他们的字符列表
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);
答案 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中所做的那样)。执行循环,询问输入,直到它是正确的,或直到它是你的结束字符。
我不会故意发布完整的解决方案代码,因为您最好使用代码并学习。我只给出了如何尝试的指示;当然,这不是唯一的方法,但它适合你已经开始的。