我的代码运行了,输入了字符串,但是打印的字符串,居然是所有输入的字符串,为什么没有分别存入三个字符数组。
package test;
import java.util.Scanner;
public class max {
public static void main(String args[]){
try
{
@SuppressWarnings("resource")
Scanner sc= new Scanner(System.in);
System.out.println("请输入三个字符串");
String []arr1 = new String [5];
String []arr2 = new String [5];
String []arr3 = new String [5];
for(int i=0;i<5;i++)
{
arr1[i]=sc.nextLine();
}
for(int i=0;i<5;i++)
{
arr2[i]=sc.nextLine();
}
for(int i=0;i<5;i++)
{
arr3[i]=sc.nextLine();
}
for(int i=0;i<5;i++ )
System.out.println(arr1[i]);
}
catch(Exception e)
{
System.out.println("对不起");
}
}
}
我的运行窗口:
我不理解,怎么输入完了三行字符串,还要按很多个回车键才可以输入,一点都不熟悉这个语法。
字符串的申明直接用String就可以,String[] 申明的是字符串数组,你写了三个循环,每个循环5次,所以一共需要输入15行数据,正确的写法应该是下面这两种吧。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Max {
public static void main(String args[]){
try
{
@SuppressWarnings("resource")
Scanner sc= new Scanner(System.in);
System.out.println("请输入三个字符串");
List<String> stringList = new ArrayList<>();
for(int i=0;i<3;i++) {
stringList.add(sc.nextLine());
}
for(String str:stringList) {
System.out.println(str);
}
}
catch(Exception e)
{
System.out.println("对不起");
}
}
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Max {
public static void main(String args[]){
try
{
@SuppressWarnings("resource")
Scanner sc= new Scanner(System.in);
System.out.println("请输入三个字符串");
char[][] arr = new char[3][];
for (int i = 0; i < 3; i++) {
arr[i] = sc.nextLine().toCharArray();
}
for (char[] c : arr) {
System.out.println(c);
}
}
catch(Exception e)
{
System.out.println("对不起");
}
}
}
sc.nextLine()就是获取一次输入,你循环了3个5次,因此获取了15次输入,另外字符数组是char[],String[]是字符串数组。你想要的结果应该是类似于下面这样吧?
public static void main(String[] args) {
try {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
System.out.println("请输入三个字符串");
int n = 3;
char[][] arr = new char[n][];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextLine().toCharArray();
}
for (char[] c : arr) {
System.out.println(Arrays.toString(c));
}
} catch (Exception e) {
System.out.println("对不起");
}
}
String []arr1 = new String [5] 这么定义的话就变成是一个有5个字符串的数组。
变成你一共要输入15个字符串。
nextLine会把回车之前的当成一个字符串,而前面的只输入了3个字符串,它一直在等你输入剩下的字符串,所以要按多次回车,让它接收完。