Java 使用扫描仪将行存储到阵列
我需要复制我拥有的数据,然后将其粘贴到JavaEclipse控制台输出窗口,该数据包含一些行,每行中有一个单词。我不知道它有多少行。 如何将行存储在数组中?我尝试了这段代码,但粘贴数据后,我应该按键盘键两次。它还存储偶数行(不是所有行)。我该怎么修?谢谢Java 使用扫描仪将行存储到阵列,java,java.util.scanner,Java,Java.util.scanner,我需要复制我拥有的数据,然后将其粘贴到JavaEclipse控制台输出窗口,该数据包含一些行,每行中有一个单词。我不知道它有多少行。 如何将行存储在数组中?我尝试了这段代码,但粘贴数据后,我应该按键盘键两次。它还存储偶数行(不是所有行)。我该怎么修?谢谢 import java.util.ArrayList; import java.util.Scanner; public class SCAN { public static void main(String[] args) {
import java.util.ArrayList;
import java.util.Scanner;
public class SCAN {
public static void main(String[] args) {
ArrayList<String> lines = new ArrayList<String>();
Scanner s = new Scanner(System.in);
while(s.hasNextLine()){
String line = s.nextLine();
if(line.length() > 0) {
lines.add(s.nextLine());
} else {
break;
}
}
System.out.println(lines);
}
}
import java.util.ArrayList;
导入java.util.Scanner;
公共类扫描{
公共静态void main(字符串[]args){
ArrayList行=新的ArrayList();
扫描仪s=新的扫描仪(System.in);
而(s.hasNextLine()){
字符串行=s.nextLine();
if(line.length()>0){
添加(s.nextLine());
}否则{
打破
}
}
系统输出打印项次(行);
}
}
更改行。添加(s.nextLine())代码>到行。添加(行)代码>
这里发生的事情是您正在使用nextLine()
两次
所以第一行被读取并存储到行
,但之后它会读取存储到ArrayList的第二行
,所以您存储的第一行不会出现在ArrayList
中
我应该按键盘上的Enter键两次
是的,你们必须这样做,因为当你们并没有线的时候,你们正在打破循环
如果要输入特定的行,可以使用计数器输入行数
您可以通过扫描仪提示插入计数器的特定值
int i=0;
while(s.hasNextLine()){
String line = s.nextLine();i++;
if(line.length() > 0) {
lines.add(line);
} else {
//don't add empty Line
}
if(i==2)break;
}
更改行。添加(s.nextLine())代码>到行。添加(行)代码>
这里发生的事情是您正在使用nextLine()
两次
所以第一行被读取并存储到行
,但之后它会读取存储到ArrayList的第二行
,所以您存储的第一行不会出现在ArrayList
中
我应该按键盘上的Enter键两次
是的,你们必须这样做,因为当你们并没有线的时候,你们正在打破循环
如果要输入特定的行,可以使用计数器输入行数
您可以通过扫描仪提示插入计数器的特定值
int i=0;
while(s.hasNextLine()){
String line = s.nextLine();i++;
if(line.length() > 0) {
lines.add(line);
} else {
//don't add empty Line
}
if(i==2)break;
}
试试这个
Scanner read=new Scanner(System.in);
for(int i=0; i<size; i++) {
array[i]=read.next();
array[i]+=read.nextLine();
}
Scanner read=新扫描仪(System.in);
对于(inti=0;i试试这个
Scanner read=new Scanner(System.in);
for(int i=0; i<size; i++) {
array[i]=read.next();
array[i]+=read.nextLine();
}
Scanner read=新扫描仪(System.in);
对于(int i=0;iif(line.length()>0){…
?抱歉!!我没有理解你的意思是当我使用此代码时,我应该粘贴Enter键两次以获得结果,我如何修复它?我想我应该用另一个代码替换if(line.length()>0){…。谢谢你不必按Enter键两次,第一次是空行,第二次是中断循环。(根据您的代码)。如果我的答案解决了您的问题,您可以接受。:)Thnks。如果(line.length()>0){…
?抱歉!!我没有理解您的意思是,当我使用此代码时,我应该粘贴Enter键两次以获得结果,我如何修复它?我想我应该替换If(line.length()>0){…使用另一个代码。谢谢您不必两次按Enter键,第一次按Enter键表示空行,第二次按Enter键表示中断循环。(根据您的代码)。如果我的答案解决了您的问题,您可以接受它。:)谢谢。