从键盘循环录入录入一个字符串,输入“end“表示结束。使用Scanner中的nextLine()方法而不是next()

该篇博客介绍了如何使用Java的Scanner类通过nextLine()方法读取包含空格的完整字符串,并结合条件判断处理含有特定子串'end'的情况。程序示例展示了如何在用户输入字符串中找到最后一个'end'的位置,如果满足特定条件则截取并输出字符串。测试案例表明了程序的正确性。
摘要由CSDN通过智能技术生成

//从键盘循环录入录入一个字符串,输入"end"表示结束
注意使用Scanner中的nextLine()方法接收控制台输入的字符串而不是next()
用next()接收时遇到空格结束获取

public class Demo1_StringEnd4 {  

    public static void main(String[] args) {   

        Scanner sc = new Scanner(System.in);

        String strInput = "";

        System.out.print("请输入字符串,输入end结束:");

        while (true){
        //接收包含空格的所有字符串;next()方法不能得到带空格的字符串
            strInput = sc.nextLine(); 
            int end = strInput.lastIndexOf("end");
            
    //条件1  包含end:即下标至少为0。
    //条件2  end下标为倒数第3,即允许字符串中(end结束之前)也可以出现end。
            if (end >=0 && end == (strInput.length()-3)){
             //获取输入的字符串 截取0-end之间字符串(不含end)
               strInput = strInput.substring(0,strInput.length()-3);
               break;    //符合if中的条件时,退出循环
           }else {
                System.out.println("重新操作,请以小写end结束");
            }
        }
        System.out.println("输入的字符串为:"+strInput);

    }
}	

另外:使用convert(String s)方法也可以实现,不过个人觉得本次列举的方法较convert好理解一些。
测试情况:
测试1
请输入字符串,输入end结束:aaaendbbbend
输入的字符串为:aaaendbbb
测试2
请输入字符串,输入end结束:aaa end bbb end
输入的字符串为:aaa end bbb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰少2020

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值