[英]Java - convert array to sentence
我有以下方法:
public static void sentence(String sen)
{
String[] array = sen.split(" ");
String[] five = Arrays.copyOfRange(Array, 0, 5);
if (Array.length < 6)
System.out.println(sen);
else
System.out.print(Arrays.toString(five));
}
作为一个论点,我输入一个句子。 如果句子超过5个单词,我只想打印出前5个单词。 发生的事情是当sen> 5时的打印输出看起来像:
[word1,word2,word3,word4,word5]
我希望它看起来像是:
word1 word2 word3 word4 word5
有关如何将数组转换为正常句子格式的任何建议,如后一示例所示?
如果您使用的是Java 8,则可以使用String.join String.join:
public static void sentence(String sen) {
String[] array = sen.split(" ");
String[] five = Arrays.copyOfRange(Array, 0, 5);
if (Array.length < 6)
System.out.println(sen);
else
System.out.print(String.join(" ",five));
}
从您提出问题的方式来看,似乎您的问题在于加入这些词语。 你可以看一下这个问题: https : //stackoverflow.com/a/22474764/967748
这里的其他答案也有效。
一些小问题需要注意:
要稍微优化,可以使用String.split
的可选limit
参数。 所以你会的
String[] array = sen.split(" ", 6); //five words + "all the rest" string
您还可以通过在if
包含String[] five = ...
语句来避免不必要的复制。 (或完全删除该逻辑)
ps:我相信if
语句中的guard应该是小写array
您可以使用此方法:
String sentence = TextUtils.join(" ", five);
另一种解决方案,首先避免使用.split()
(和.join()
)
String res = "";
Scanner sc = new Scanner(sen); //Default delimiter is " "
int i = 0;
while(sc.hasNext() && i<5){
res += sc.next();
i++;
}
System.out.println(res);
为了性能原因,可以将res替换为字符串构建器,但我不记得确切的语法
System.out.println(StringUtils.join(five, " "));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.