已有101人关注
程序遇到问题
发表在Java图书答疑 2016-06-28
是否精华
版块置顶:
程序第二次输入时遇到java.util.NoSuchElementException
程序如下
import java.util.Scanner;



public class Test {
public static void main(String[] args) {
String wenti="计算字符串中子串出现的次数。首先在控"
+ "制台输入一个字符串,然后在控制台输入子串,计算子串出现的次数";
System.out.println(wenti);

while(true){
    int count=0;
    
    Scanner s = new Scanner(System.in);
    System.out.print("请输入字符串:");
    String str =s.nextLine();
    
    Scanner s2 = new Scanner(System.in);
    System.out.print("请输入字串:");
    String str2=s2.nextLine();
    
    
    if(str.equals("")||str2.equals("")){
     System.out.println("你没有输入字符串或字串");
     System.exit(0);
    }else {
     for(int i=0;i<str.length()-str2.length();i++){
     if(str2.equals(str.substring(i,str2.length()+i)) ){
     count++;
        }
        }
    }
    System.out.println(count);
    s.close();
    s2.close();
}
}
}
分享到:
精彩评论 3
静心_mrkj
学分:0 LV1
2016-06-28
沙发
1.Scanner s2 = new Scanner(System.in);这行代码是多余的,去掉!
2.把String str2=s2.nextLine();改为String str2=s.nextLine();;
另外,如果仅仅是为了在控制台输入字符串,s.nextLine()可以改为s.next()。
佚名
学分:70 LV3
TA的每日心情
开心
2021-07-05 14:21:40
2016-06-28
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
1.Scanner s2 = new Scanner(System.in);这行代码是多余的,去掉!
2.把String str2=s2.nextLine();改为String str2=s.nextLine();;
另外,如果仅仅是为了在控制台输入字符串,s.nextLine()可以改为s.next()。
[/FIELDSET]

回复:老师,按照你的方法改了,但还是出现同样的错误,求解析
  
静心_mrkj
学分:0 LV1
2016-06-29
地板
import java.util.Scanner;

public class Test {
public static void main(String[] args) {
String wenti = "计算字符串中子串出现的次数。首先在控" + 
"制台输入一个字符串,然后在控制台输入子串,计算子串出现的次数";
System.out.println(wenti);

Scanner s = new Scanner(System.in);
System.out.print("请输入字符串:");
String str = s.next();

System.out.print("请输入字串:");
String str2 = s.next();

int count = 0;

for (int i = 0; i <= str.length() - str2.length(); i++) {
if (str2.equals(str.substring(i, str2.length() + i))) {
count++;
}
}
System.out.println(count);
s.close();
}
}

这么改,着重看下for循环,为了能截取到字符串最后一个字符,循环条件中的比较运算符应改为“<=”;既然允许了控制台输入,所以无需对输入的字符串是否为""进行判断;不要轻易使用while(true)死循环。
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照