请教一个问题

pureZer 2017-10-03 03:33:28
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n=input.nextInt();//表示测试实例的个数
for(int j=0;j<n;j++) {
String a=input.nextLine();//输入的字符串
char[] array=a.toCharArray();//将字符串转化为字符数组
int sum=0;

for(int i=0;i<array.length/2;i++) {
if(array[i]!=array[array.length-1-i]) {
sum++;//如果开头的字符不等于末尾的字符,sum+1
}
}

if(sum==0) {
System.out.println("yes");//如果sum=0则是回文串
}
else {
System.out.println("no");
}
}
}
}


这段代码中第一个for循环中的内容不执行。因为用了nextLine(),把他改成next()就可以了。但是,如果我一定要用nextLine(),请问有方法实现么。
...全文
168 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
女王的大宝宝 2017-10-03
  • 打赏
  • 举报
回复
next之所以可以,是因为next需要接收到有效字符串再收到回车才会停止,所以next收到上面的回车后发现没有有效字符串,可以接着录入字符串。
女王的大宝宝 2017-10-03
  • 打赏
  • 举报
回复
造一个新的Scanner对象用于录入String类型的数据,或者,在int n = input.nextInt();下面写一个nextLine(); 用于接收录入int后的那个回车符,for循环里的就收不到回车符号可以正常录入了
茉莉小姐啊 2017-10-03
  • 打赏
  • 举报
回复
没听明白你的意思。第一段代码不是控制它的测试次数的吗,没有不执行啊
东海游愚 2017-10-03
  • 打赏
  • 举报
回复
nextLine是包括换行符的。

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧