Подтвердить что ты не робот

Обрезать строку в java, чтобы получить первое слово

У меня есть строка "Волшебное слово". Мне нужно обрезать строку, чтобы извлечь только "Magic". Я делаю следующий код.

String sentence = "Magic Word";  
String[] words = sentence.split(" ");  

for (String word : words)  
{  
   System.out.println(word);  
}  

Мне нужно только первое слово. Есть ли другие методы обрезания строки, чтобы получить первое слово, только если встречается space?

4b9b3361

Ответ 1

  String firstWord = "Magic Word";
     if(firstWord.contains(" ")){
        firstWord= firstWord.substring(0, firstWord.indexOf(" ")); 
        System.out.println(firstWord);
     }

Ответ 2

Вы можете использовать метод String replaceAll(), который принимает регулярное выражение как входное, чтобы заменить все после пробела, включая пробел, если пространство действительно существует, с пустой строкой:

String firstWord = sentence.replaceAll(" .*", "");

Ответ 3

Это должен быть самый простой способ.

public String firstWord(String string)
{
return (string+" ").split(" ")[0]; //add " " to string to be sure there is something to split
}

Ответ 4

изменение предыдущего ответа.

String firstWord = null;
if(string.contains(" ")){
firstWord= string.substring(0, string.indexOf(" ")); 
}
else{
   firstWord = string;
}

Ответ 5

   String input = "This is a line of text";

   int i = input.indexOf(" "); // 4

   String word = input.substring(0, i); // from 0 to 3

   String rest = input.substring(i+1); // after the space to the rest of the line

Ответ 6

Загрязненное решение:

sentence.replaceFirst("\\s*(\\w+).*", "$1")

У этого есть возможность вернуть исходную строку, если нет совпадения, поэтому просто добавьте условие:

if (sentence.matches("\\s*(\\w+).*", "$1"))
    output = sentence.replaceFirst("\\s*(\\w+).*", "$1")

Или вы можете использовать более чистое решение:

String parts[] = sentence.trim().split("\\s+");
if (parts.length > 0)
    output = parts[0];

Два вышеприведенных решения делают предположения о первом символе, который не является пространством в строке, - это слово, которое может быть неверным, если строка начинается с пунктуации.

Чтобы позаботиться об этом:

String parts[] = sentence.trim().replaceAll("[^\\w ]", "").split("\\s+");
if (parts.length > 0)
    output = parts[0];

Ответ 7

Вы можете попробовать это →

  String newString = "Magic Word";
  int index = newString.indexOf(" ");
  String firstString = newString.substring(0, index);
  System.out.println("firstString = "+firstString);