如何在用户选择的字符串中的第一个空格后删除所有内容?我正在读这个how to remove some words from a string in java。在我的情况下这能帮助我吗?
答案 0 :(得分:2)
假设字符串的开头没有空格。 请按照以下步骤进行操作 -
希望这有帮助。
str = "Example string"
String[] _arr = str.split("\\s");
String word = _arr[0];
在考虑上述代码之前,您需要在开始时考虑多个空格和空格。
我不是JAVA编程的原生,但我知道它有字符串的分割功能。 你在问题中引用的参考文献有点复杂,而你可以很容易地实现所需的东西。
P.S。将来,如果你想要得到两个或三个单词,拆分方法会更好(假设你已经处理了多个空格),否则子串更好。
答案 1 :(得分:2)
// Taking 'str' as your string
// To remove the first space(s) of the string,
str = str.trim();
int index = str.indexOf(" ");
String word = str.substring(0, index);
这只是众多方法中的一种。
str = str.replaceAll("\\s+", " "); // This replaces one or more spaces with one space
String[] words = str.split("\\s");
String first = words[0];
答案 2 :(得分:2)
您可以将replaceAll
与正则表达式\s.*
结合使用,以匹配空格后的所有内容:
String str = "Hello java word!";
str = str.replaceAll("\\s.*", "");
<强>输出强>
Hello
就像@Coffeehouse Coder在评论中提到的那样,如果输入以空格开头,此解决方案将替换所有内容,因此如果您想避免这种情况,可以使用string.trim()
修剪输入,以便删除空格在开始和结束。
答案 3 :(得分:2)
一种简单的方法可以是:
[Table("Messages")]
答案 4 :(得分:1)
在我看来,最简单的解决方案是找到用户希望它被截断的索引,然后将substring()方法从0调用到他们想要的索引。将该=设置为一个新字符串,您就拥有了他们想要的字符串。
如果要替换字符串,则只需将原始字符串=设置为substring()方法的结果。
链接到substring()方法:https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int,%20int)
答案 5 :(得分:0)
已经有5个非常好的答案,所以让我添加第六个答案。多样性是生活的调味品!
private static final Pattern FIRST_WORD = Pattern.compile("\\S+");
public static String firstWord(CharSequence text) {
Matcher m = FIRST_WORD.matcher(text);
return m.find() ? m.group() : "";
}
优于.split(...)[0]
- 类型答案:
它直接完成所要求的内容,即&#34;找到第一个非空格字符序列。&#34;所以自我记录更明确。
调用多个字符串时效率更高(例如批量处理大量字符串)因为正则表达式只编译一次。
它更节省空间,因为当我们只需要第一个单词时,它可以避免不必要地创建一个引用每个单词的整个数组。
无需修剪字符串即可正常工作。
(我知道对OP有任何用处可能为时已晚,但我将其留在这里作为未来读者的替代解决方案。)