java中的nextInt()等
若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<str.length();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"); } } } }