首先,我对in.next,in.nextLine(),in.hasNext(),这几个方法做了点实验
得出的结论是
1.in.nextLine();接收字符串+换行符,但输出的时候不输出换行符
2.in.hasNext();会接收tab,换行符,数字,字符串,但接收了以后只会返回一个Boolean类型的变量,而要接收下一个数字,或者字符串,则要使用,in.next();去接收字符。in.nextInt();去接收数字
3.使用System.out.println(b);
System.out.println();
去进行隔一行输出的操作
实验时的代码
package 算法练习;
import java.util.Scanner;
public class 字符串的输入输出处理 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int j=0;
String b="";
//输入数字这里有一个换行符
int d=in.nextInt();
//接受换行符
b=in.nextLine();
//接收字符串+换行符,但输出的时候不输出换行符
b=in.nextLine();
// System.out.print(1);
System.out.print(b);
System.out.println();
// System.out.print(2);
b=in.nextLine();
System.out.print(b);
System.out.println();
//接收换行符,因为hasNext()会接收换行符或者tab键但不输出
// boolean q=in.hasNext();
//hasNext()是判断是否输入了内容,next()取输入的字符串,nextInt()取输入的整数
//死循环
int i=0;
while(in.hasNext())
{
b=in.next();
System.out.print(b);
System.out.println(i++);
System.out.println();
}
}
}
解决问题的代码
package 算法练习;
import java.util.Scanner;
public class 字符串的输入输出处理 {
public static void main(String[] args) {
// // TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int j=0;
String b="";
//输入数字这里有一个换行符
int d=in.nextInt();
//接受换行符或者in.hasNext();也可以,建议使用in.nextLine();
b=in.nextLine();
while(j<d)
{
//接收换行符,并且输出换行符
b=in.nextLine();
System.out.println(b);
System.out.println();
j++;
}
// //接收换行符,因为hasNext()会接收换行符或者tab键但不输出
// boolean q=in.hasNext();
hasNext()是判断是否输入了内容,next()取输入的字符串,nextInt()取输入的整数
// //死循环
int i=0;
while(in.hasNext())
{
b=in.next();
//in.next不接受换行符,所以没有输出换行符
System.out.println(b);
System.out.println();
}
}
}