nextLine()
1.输入为数字:scan.nextInt() scan.nextDoubel() scan.nextFloat()
2.输入字符串 用scan.next()或者scan.nextLine()
next读到空格处就不读了,nextLine()读一行
3.循环输入
import java.util.ArrayList;
import java.util.Scanner;
Scanner scan=new Scanner(System.in)
while(scan.hasNext()){
System.out.print("请输入一行整数用空格分离");
String aline=scan.nextLine();
ArrayList alinenumber=new ArrayList();//转换成整型数组存放
int pre=0;//扫描指针
int i=0,tem=0;
for(int i=0;i<aline.length();i++){
if(aline.charAt(i)==' '){
temp=Integer.parseInt(aline.substring(pre,i));
alinenumber.add(temp);
pre=i+1;
}
temp=Integer.parseInt(aline.substring(pre,i));//跳出循环时可能还有有个数字
alinenumber.add(temp);
}
}
}
java实现示例
import java.util.ArrayList;
import java.util.Scanner;
public class Input {
//输入一个整数
public void anInt(){
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个整数: ");
int number=sc.nextInt();
System.out.println("输入的数字是: "+number);
}
//输入一个浮点数
public void aDouble(){
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个浮点数: ");
double number=sc.nextDouble();
System.out.println("输入的数字是: "+number);
}
//输入一行字符,并根据字符做相应的动作
public void aLine(){
Scanner sc = new Scanner(System.in);
System.out.print("请输入一行字符:");
String aline=sc.nextLine();
char [] word=aline.toCharArray();
for(int i=0;i<aline.length();i++){
switch(word[i]){
case ('w'):{
System.out.print("输入的字符是: w ");
break;
}
case('s'):{
System.out.println("输入的字符是: s");
break;
}
case('a'):{
System.out.println("输入的字符是: a");
break;
}
case('d'):{
System.out.println("输入的字符是: d");
break;
}
default:{
System.out.println("输入了其它字符");
}
}
}
}
//输入一行整数,这种情况是最常见的,需要进行类型转换
public void aLineInt(){
Scanner sc =new Scanner(System.in);
System.out.print("请输入一行整数使用空格分离:");
String aline=sc.nextLine();
ArrayList alinenumber=new ArrayList();//转换成整型放到
int pre=0;//扫描指针
int i=0;
int temp=0;
for (i = 0; i < aline.length(); i++) {
if (aline.charAt(i) == ' ') {
temp = Integer.parseInt(aline.substring(pre, i));
alinenumber.add(temp);
pre = i + 1;
}
}
temp = Integer.parseInt(aline.substring(pre, i));//跳出循环时可能还有一个数字
alinenumber.add(temp);
System.out.print("输入的数字序列:");
for(i=0;i<alinenumber.size();i++)
System.out.print((int)alinenumber.get(i)+" ");
System.out.println();
}
//输入一行浮点数,需要进行类型转换
public void aLineDouble(){
Scanner sc =new Scanner(System.in);
System.out.print("请输入一行浮点数使用空格分离:");
String aline=sc.nextLine();
ArrayList alinenumber=new ArrayList();//转换成整型放到
int pre=0;//扫描指针
int i=0;
double temp=0;
for (i = 0; i < aline.length(); i++) {
if (aline.charAt(i) == ' ') {
temp = Double.parseDouble(aline.substring(pre, i));
alinenumber.add(temp);
pre = i + 1;
}
}
temp = Double.parseDouble(aline.substring(pre, i));//跳出循环时可能还有一个数字
alinenumber.add(temp);
System.out.print("输入的浮点数为:");
for(i=0;i<alinenumber.size();i++)
System.out.print((Double)alinenumber.get(i)+" ");
System.out.println();
}
//输入一个整数矩阵,矩阵的长度和宽度不确定,可以用于输入n*n的矩阵
public void aMatrix(){
Scanner sc = new Scanner(System.in);
ArrayList matrix=new ArrayList();//整个矩阵
ArrayList alinelist;//每一列
int length=0;//一列的长度
System.out.println("请输入一个矩阵:");
//获得下一行
while (sc.hasNextLine()) {
String str = sc.nextLine();
if (str.equals(""))//输入空行则完成输入,退出循环
break;
alinelist=new ArrayList();
int pre=0;//扫描指针
int i=0;
int temp=0;
for (i = 0; i < str.length(); i++) {
if (str.charAt(i) == ' ') {
temp = Integer.parseInt(str.substring(pre, i));
alinelist.add(temp);
pre = i + 1;
}
}
temp = Integer.parseInt(str.substring(pre, i));
alinelist.add(temp);
matrix.add(alinelist);
if(length<alinelist.size())
length=alinelist.size();
}
//复制到数组中
int array [] []=new int [matrix.size()][length];
//调用函数计算数量
for(int i=0;i<matrix.size();i++){
alinelist=(ArrayList) matrix.get(i);
for(int j=0;j<alinelist.size();j++){
array[i][j]=(int)alinelist.get(j);
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
}