我在Java中想知道如何打印字符串直到它到达该字符串中的“quit”字样然后立即停止打印。例如,如果字符串值为:
“嗨,这是一个随机字符串退出,不应该打印”
所有应该打印的是“嗨,这是一个随机字符串”。
我正在尝试这样的事情,但我认为这是错误的。
if ( input.indexOf( "quit" ) > -1 )
{
//code to stop printing here
}
答案 0 :(得分:4)
而不是将问题视为“如何停止打印”(因为一旦你开始在Java中打印某些东西很难阻止它),请考虑“我怎么能”只打印到某一点的单词?“例如:
int quit_position = input.indexOf("quit");
if (quit_position >= 0) {
System.out.println(input.substring(0, quit_position));
} else {
System.out.println(input);
}
答案 1 :(得分:3)
看起来像家庭作业,所以这个答案是家庭作业风格。 : - )
你走在正确的轨道上。
将indexOf的值保存为整数。
然后就像你有一个手指指向正确的位置 - 即,你想要打印的子串的末尾。
无论如何,这是一个提示......
编辑:无论如何,看起来人们都会给你。但这里还有一些想法:
replaceAll
解决方案的调整,以覆盖领先的空白为“退出”。答案 2 :(得分:2)
这有一个单行解决方案:
System.out.println(input.replaceAll("quit.*", ""));
String.replaceAll()
使用正则表达式进行匹配,我已指定为“文字'退出'以及后面的所有内容”,这将由返回的空格""
(即有效删除)替换串
答案 3 :(得分:1)
如果你不介意字符串中的尾随空格
int index = input.indexOf("quit");
if (index == -1) index = input.length();
return input.substring(0, index);