若n=sc.nextInt()输入一个数字,然后若后面有String str=sc.nextLine();语句会出现错误,
nextLine()自动读取了被next()去掉的Enter作为台的结束符,所以没办法给从键盘给str输入值,其他的next()用法,如double nextDouble()。float nextFloat(),int nextInt()
等与nextLine()连用时都存在这个问题,解决是在next()后面加一个nextLine()语句,将被next()去掉的enter结束符过滤掉
public class RightId {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
sc.nextLine();//过滤掉enter
while(n--!=0){
String str=sc.nextLine();
int count=0;
if(str.charAt(0)>='a'&&str.charAt(0)<='z'||str.charAt(0)>='A'&&str.charAt(0)<='Z'||str.charAt(0)=='_'){
for(int i=1;i
if(str.charAt(i)>='a'&&str.charAt(i)<='z'||str.charAt(i)>='A'&&str.charAt(i)<='Z'||str.charAt(i)=='_'||str.charAt(i)>='0'&&str.charAt(i)<='9'){
count++;
}
else{
System.out.println("no");
break;
}
}
if(count==str.length()-1){
System.out.println("yes");
}
}
else{
System.out.println("no");
}
}
}
}