说我有一个简单的句子如下。
例如,这就是:
一个简单的句子只包含一个子句。复句 由两个或多个独立条款组成。一个复杂的句子有 至少一个独立条款加上至少一个从属条款。一套 没有独立条款的单词可能是一个不完整的句子, 也称为句子片段。
我只想在上面的句子中输入前10个单词。
我正在尝试生成以下字符串:
一个简单的句子只包含一个子句。化合物
我试过了:
bigString.split(" " ,10).toString()
但它返回与bigString
数组包装的[]
相同的内容。
提前致谢。
答案 0 :(得分:2)
如果你使用带有限制器的split-Method(你的是10),它不会只给你前10个部分并停止,但给你前9个部分,数组的第10个位置包含其余部分输入字符串。 ToString连接数组中的所有字符串,从而产生整个输入String。你可以做些什么来实现你最初想要的是:
String[] myArray = bigString.split(" " ,11);
myArray[10] = ""; //setting the rest to an empty String
myArray.toString(); //This should give you now what you wanted but surrouned with array so just cut that off iterating the array instead of toString or something.
答案 1 :(得分:2)
假设bigString : String
等于你的文字。你要做的第一件事是用单个单词分割字符串。
String[] words = bigString.split(" ");
你喜欢提取多少个单词?
int n = 10;
把话放在一起
String newString = "";
for (int i = 0; i < n; i++) { newString = newString + " " + words[i];}
System.out.println(newString);
希望这就是你所需要的。
如果您想了解有关正则表达式的更多信息(即告诉java在哪里拆分),请参阅此处:How to split a string in Java
答案 2 :(得分:1)
这会对你有所帮助
String[] strings = Arrays.stream(bigstring.split(" "))
.limit(10)
.toArray(String[]::new);
答案 3 :(得分:1)
这正是你想要的:
String[] result = new String[10];
// regex \s matches a whitespace character: [ \t\n\x0B\f\r]
String[] raw = bigString.split("\\s", 11);
// the last entry of raw array is the whole sentence, need to be trimmed.
System.arraycopy(raw, 0, result , 0, 10);
System.out.println(Arrays.toString(result));