从Java中的string中提取第一个单词的最佳方法是什么?
试图写一个简短的方法,以便我可以parsing一个string并提取第一个单词。 我一直在寻找最好的方式来做到这一点。
我假设我会使用str.split(",")
,但是我想抓住一个string中的第一个单词,并将其保存在一个variables中,然后将其他variables放入另一个variables中。
有没有一个简洁的方法来做到这一点?
split
方法的第二个参数是可选的,如果指定的话只会将目标string拆分N
次。
例如:
String mystring = "the quick brown fox"; String arr[] = mystring.split(" ", 2); String firstWord = arr[0]; //the String theRest = arr[1]; //quick brown fox
或者,你可以使用String的substring
方法。
你应该这样做
String input = "hello world, this is a line of text"; int i = input.indexOf(' '); String word = input.substring(0, i); String rest = input.substring(i);
以上是做这个任务的最快方法。
为了简化以上:
text.substring(0, text.indexOf(' '));
这是一个准备好的function:
private String getFirstWord(String text) { if (text.indexOf(' ') > -1) { // Check if there is more than one word. return text.substring(0, text.indexOf(' ')); // Extract first word. } else { return text; // Text is the first word itself. } }
您可以使用限制为2的String.split
。
String s = "Hello World, I'm the rest."; String[] result = s.split(" ", 2); String first = result[0]; String rest = result[1]; System.out.println("First: " + first); System.out.println("Rest: " + rest); // prints => // First: Hello // Rest: World, I'm the rest.
- API文档:
split
我以前做的简单的是
str.contains(" ") ? str.split(" ")[0] : str
哪里str
是你的string或文本bla bla :)。 所以, 如果
-
str
是空值,它返回原样。 -
str
有一个单词,它会返回原样。 -
str
是多个单词,它提取第一个单词并返回。
希望这是有帮助的。
你可以使用扫描仪
http://download.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html
扫描仪也可以使用除空格之外的分隔符。 这个例子从一个string中读取几个项目:
String input = "1 fish 2 fish red fish blue fish"; Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*"); System.out.println(s.nextInt()); System.out.println(s.nextInt()); System.out.println(s.next()); System.out.println(s.next()); s.close();
打印以下输出:
1 2 red blue
喜欢这个:
final String str = "This is a long sentence"; final String[] arr = str.split(" ", 2); System.out.println(Arrays.toString(arr));
arr[0]
是第一个单词,其余的是arr[1]
import org.apache.commons.lang3.StringUtils; ... StringUtils.substringBefore("Grigory Kislin", " ")
String anotherPalindrome = "Niagara. O roar again!"; String roar = anotherPalindrome.substring(11, 15);
你也可以这样做