在第一个空格后删除每个字符串的内容

时间:2017-06-08 18:09:09

标签: java string

如何在用户选择的字符串中的第一个空格后删除所有内容?我正在读这个how to remove some words from a string in java。在我的情况下这能帮助我吗?

6 个答案:

答案 0 :(得分:2)

假设字符串的开头没有空格。 请按照以下步骤进行操作 -

  1. 在太空中拆分字符串。它将创建一个数组。
  2. 获取该数组的第一个元素。
  3. 希望这有帮助。

    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

regex demo

就像@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] - 类型答案:

  1. 它直接完成所要求的内容,即&#34;找到第一个非空格字符序列。&#34;所以自我记录更明确。

  2. 调用多个字符串时效率更高(例如批量处理大量字符串)因为正则表达式只编译一次。

  3. 它更节省空间,因为当我们只需要第一个单词时,它可以避免不必要地创建一个引用每个单词的整个数组。

  4. 无需修剪字符串即可正常工作。

  5. (我知道对OP有任何用处可能为时已晚,但我将其留在这里作为未来读者的替代解决方案。)