//从键盘循环录入录入一个字符串,输入"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