Java中怎么读入一行输入空格隔开的多个数据
import java.util.Scanner;
public class ReadData{
public static void main(String[] args) {
ReadData r=new ReadData();
Scanner input=new Scanner(System.in);
//Scanner input=new Scanner("abc 123 bb ss");
String s=input.nextLine();
String[] arr=s.split(" ");
System.out.println(arr.length+"\t"+arr[0]);
}
}
扩展资料
Scanner sc = new Scanner(System.in);
String inputString = sc.nextLine();
String stringArray[] = inputString.split(" ");
int num[] = new int[stringArray.length];
for (int i = 0; i < stringArray.length; i++) {
num[i] = Integer.parseInt(stringArray[i]);
}
public class Test {
public static void main(String[] args) throws ParseException {
Scanner scanner= new Scanner(System.in);
String str = scanner.nextLine();
System.out.println(str);
}
}
可以参照示例代码。如果你希望将读入的字符串按照空格区分放入到一个数组中
那么调用str.split(' ');就可以了。
Scanner包含多个方法,比如常用的
scanner.next() 读取下一个字符串,遇到空格就不在读入
scanner.nextLine()读取下一行
其他的方法都不常用
String str = "1 2 3 4";
str = str.replaceAll("\\s*", " ").replaceFirst("\\s", "");
String[] strArry = str.split(" ");
List<String> result = new ArrayList<String>();
for (int i = 0 ; i < strArry.length ; i++) {
if (strArry[i].length() > 0 && strArry[i] != null) {
result.add(strArry[i]);
}
}
for (String resultStr : result) {
System.out.println(resultStr);
}
适用多个空格分隔时,试试看
import java.util.Scanner;
public class ReadData{
public static void main(String[] args) {
ReadData r=new ReadData();
Scanner input=new Scanner(System.in);
//Scanner input=new Scanner("abc 123 bb ss");
String s=input.nextLine();
String[] arr=s.split(" ");
System.out.println(arr.length+"\t"+arr[0]);
}
}
2014-11-21
String[] strs = str.split("\\s+");/*正则表达式,参数是一个正则表达式的字符串*/
没编译,不过写了好多遍了,应该没错