我想知道在 Java 中如何打印一个字符串,直到它到达该字符串中的“退出”一词,然后立即停止打印。例如,如果字符串值为:
“嗨,这是一个随机字符串退出,不应打印”
应该打印的只是“嗨,这是一个随机字符串”。
我正在尝试这样的事情,但我认为这是错误的。
if ( input.indexOf( "quit" ) > -1 )
{
//code to stop printing here
}
不要将问题视为“如何停止打印”(因为一旦您开始在 Java 中打印某些内容,就很难停止),而是从“我如何才能只打印到某个点的单词? " 例如:
int quit_position = input.indexOf("quit");
if (quit_position >= 0) {
System.out.println(input.substring(0, quit_position));
} else {
System.out.println(input);
}
看起来像家庭作业,所以这个答案是家庭作业式的。:-)
你在正确的轨道上。
将该 indexOf 的值保存为整数。
然后就像你有一个手指指向正确的位置 - 即,在你真正想要打印的子字符串的末尾。
反正就是个暗示……
编辑:看起来人们还是把它给了你。但这里还有一些想法:
replaceAll
解决方案的改编,以涵盖将空格引导到“退出”。这有一个单行解决方案:
System.out.println(input.replaceAll("quit.*", ""));
String.replaceAll()
需要一个正则表达式来匹配,我已将其指定为“文字'退出'和后面的所有内容”,它将被""
返回的字符串中的空白(即有效删除)替换
如果您不介意字符串中的尾随空格
int index = input.indexOf("quit");
if (index == -1) index = input.length();
return input.substring(0, index);