java equals 和 hasNext 的用法
java usage of equals and hasNext
为什么这段代码不停? "scanner.equals(null)" 和 "scanner.hasNext() == false" 不是相同或至少相同的角色吗?
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i = 1;
while(true) {
if(scanner.equals(null))
break;
else {
String line = scanner.nextLine();
System.out.println(i + " " + line);
i++;
}
}
}
}
scanner.equals(null)
将始终 return 错误。它检查对象实例是否为空,是否为空。相比之下,scanner.next()
检查扫描仪是否可以找到令牌。
无论如何,你使用的是nextLine
方法,所以你应该使用hasNextLine
,而不是hasNext
:
while(scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(i + " " + line);
i++;
}
为什么这段代码不停? "scanner.equals(null)" 和 "scanner.hasNext() == false" 不是相同或至少相同的角色吗?
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i = 1;
while(true) {
if(scanner.equals(null))
break;
else {
String line = scanner.nextLine();
System.out.println(i + " " + line);
i++;
}
}
}
}
scanner.equals(null)
将始终 return 错误。它检查对象实例是否为空,是否为空。相比之下,scanner.next()
检查扫描仪是否可以找到令牌。
无论如何,你使用的是nextLine
方法,所以你应该使用hasNextLine
,而不是hasNext
:
while(scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(i + " " + line);
i++;
}