我正在尝试从用户那里获得5个字符串输入,这些输入将存储在一个数组中。当我输入类似“Hello World”的内容并点击新行时,我只能输入3个单词。所以我希望每个用户输入都是一个句子,点击输入应该询问用户在新行上的另一个输入。
到目前为止,这是我的代码:
activity_main.xml
答案 0 :(得分:1)
根据documentation,Scanner.next()
:
查找并返回此扫描仪的下一个完整令牌。完整的标记之前和之后是与分隔符模式匹配的输入。
由于Scanner
使用的默认分隔符是空格,因此调用next()
将从用户输入中获取单个单词。如果您想捕获以换行符结尾的多个单词,则应使用Scanner.nextLine()
代替。
此外,您可以通过预先创建数组并在循环中分配用户输入条目来删除代码重复(您应该始终执行此操作,保留DRY):
final int numberOfCars = 5;
Scanner userInput = new Scanner(System.in);
String[] cars = new String[numberOfCars];
for (int i = 0; i < numberOfCars; i++) {
cars[i] = userInput.nextLine();
}
答案 1 :(得分:0)
我建议你有一个用户可以输入的关键字或短语来停止程序。在这里,我创建了一个使用java.util.Scanner对象接收键盘输入的简单程序。每个值都存储在名为&#34;输入的java.util.ArrayList中。&#34;当用户输入输入时,他/她将键入&#34;停止&#34;程序将停止。
import java.util.*; //you need this for ArrayList and Scanner
public class Input{
public static void main(String[] args){
Scanner user_input = new Scanner(System.in); //create a scanner object
ArrayList<String> inputs = new ArrayList<String>(); //I used a java.util.ArrayList simply because it is more flexible than an array
String temp = ""; //create a temporary string which will represent the current input string
while(!((temp = user_input.next()).equals("stop"))){ //set temp equal to the new input each iteration
inputs.add(temp); //add the temp string to the arraylist
}
}
}
如果要将ArrayList转换为普通的String [],请使用以下代码:
String[] inputArray = new String[inputs.size];
for(int i = 0; i < inputs.size(); i++){
inputArray[i] = inputs.get(i);
}
答案 2 :(得分:0)
通过将问题存储在数组上并循环通过for循环提示输入直到您有疑问,可以使这更通用。这就是为什么当你有更多问题时,你可以将它们添加到列表而不更改代码上的任何其他内容。
然后,要回答有关创建String数组的原始问题,可以使用以下方法String[] a = answers.toArray(new String[answers.size()]);
import java.util.ArrayList;
import java.util.Scanner;
public class HelloWorld
{
public static void main(String[] args)
{
ArrayList<String> questions = new ArrayList<String>(5){{
add("What is your name?");
add("What is school you went to?");
add("Do you like dogs?");
add("What is pats name?");
add("Are you batman?");
}};
ArrayList<String> answers = new ArrayList<String>(questions.size()); // initialize answers with the same size as question array
String input = ""; // Stores user input here
Scanner scanner = new Scanner(System.in);
for(String question : questions){
System.out.println(question); // Here we adding a new line and the user type his answer on a new line
input = scanner.nextLine();
answers.add(input); // Store the answer on answers array
}
System.out.println("Thank you.");
String[] a = answers.toArray(new String[answers.size()]); // THis converts ArrayList to String[]
System.out.println("You entered: " + a.toString());
}
}
答案 3 :(得分:0)
你想要这个:
Scanner user_input = new Scanner(System.in);
String ask1 = user_input.nextLine()+"\n";
String ask2 = user_input.nextLine()+"\n";
String ask3 = user_input.nextLine()+"\n";
String ask4 = user_input.nextLine()+"\n";
String ask5 = user_input.nextLine();
String[] cars = {ask1, ask2, ask3, ask4, ask5};