天灵狐 2014-08-09 08:07 采纳率: 100%
浏览 17334
已采纳

JAVA,当键盘输入多行字符串时,如何停止输入。

    Scanner in=new Scanner(System.in);
    String[] input = new String[26];
    for(int i = 0; input[i] != "end"; i++){
        input[i] = in.next();
    }
    in.close();

想要达到的效果:执行程序后由键盘输入:
thisisthefistline
thisisthesecondline
end
结束输入,进入下一行程序。

但是事实上,即使输入了end,按下回车后,依然可以继续输入字符串和回车。
想要知道,如果我需要使这个代码停下来执行下一段代码,在for中应该用什么替换“input[i] != "end"”,以及相应的是如何停止键盘录入的?

  • 写回答

3条回答 默认 最新

  • u010334733 2014-08-14 10:18
    关注

    字符串不能用“=”、“!=”之类的比较。还有用for语句他是先判断后执行语句。下面代码可以实现:enter code here

            Scanner in = new Scanner(System.in);
            String[] input = new String[26];
            int i = 0;
            do {
                input[i] = in.next();
                i++;
            } while (!input[i - 1] .equals("end") );
            in.close();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 朱发明 2014-08-09 15:37
    关注

    String 数组长度已经定了,暂停有错误,考虑用StringBuffier或者StringBudder

    评论
  • 钰娘娘 2021-09-23 14:46
    关注
    
    String[] strs = new String[26];
           Scanner sc = new Scanner(System.in);
           String s;
           int i = 0;
          //字符串用equals比较,equals前面能用固定串的用固定串,因为equals前用null会出空指针
           while (!"end".equals(s=sc.nextLine())){
              //不够位置放,长度扩展为原来的2倍,就可以无限输入了
               if(i==strs.length){
                   String[] copy = new String[strs.length<<1];
                   System.arraycopy(strs,0,copy,0,strs.length);
                   strs = copy;
               }
               strs[i++] = s;
           }
            sc.close();
            System.out.println(Arrays.toString(strs));//Arrays.toString()和Arrays.deepToString()超好用,强烈推荐
    
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Google Chrome 所有页面崩溃,三种解决方案都没有解决,我崩溃了
  • ¥18 如何用c++编写数学规律题
  • ¥20 使用uni-app发起网络请求,获取重定向302返回的cookie
  • ¥20 手机外部浏览器拉起微信小程序支付 (相关搜索:微信小程序)
  • ¥20 怎样通过一个网址找到其他同样模版的网址
  • ¥30 XIAO esp32c3 读取FDC2214的数据
  • ¥15 在工控机(Ubuntu系统)上外接USB蓝牙硬件进行蓝牙通信
  • ¥15 关于PROCEDURE和FUNCTION的问题
  • ¥100 webapi的部署(标签-服务器)
  • ¥20 怎么加快手机软件内部计时的时间(关键词-日期时间)