Ответ 1
String firstWord = "Magic Word";
if(firstWord.contains(" ")){
firstWord= firstWord.substring(0, firstWord.indexOf(" "));
System.out.println(firstWord);
}
У меня есть строка "Волшебное слово". Мне нужно обрезать строку, чтобы извлечь только "Magic". Я делаю следующий код.
String sentence = "Magic Word";
String[] words = sentence.split(" ");
for (String word : words)
{
System.out.println(word);
}
Мне нужно только первое слово.
Есть ли другие методы обрезания строки, чтобы получить первое слово, только если встречается space
?
String firstWord = "Magic Word";
if(firstWord.contains(" ")){
firstWord= firstWord.substring(0, firstWord.indexOf(" "));
System.out.println(firstWord);
}
Вы можете использовать метод String
replaceAll()
, который принимает регулярное выражение как входное, чтобы заменить все после пробела, включая пробел, если пространство действительно существует, с пустой строкой:
String firstWord = sentence.replaceAll(" .*", "");
Это должен быть самый простой способ.
public String firstWord(String string)
{
return (string+" ").split(" ")[0]; //add " " to string to be sure there is something to split
}
изменение предыдущего ответа.
String firstWord = null;
if(string.contains(" ")){
firstWord= string.substring(0, string.indexOf(" "));
}
else{
firstWord = string;
}
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
Загрязненное решение:
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];
Вы можете попробовать это →
String newString = "Magic Word";
int index = newString.indexOf(" ");
String firstString = newString.substring(0, index);
System.out.println("firstString = "+firstString);