java如何在每10个单词后拆分一个字符串?
我正在寻找一种方法,每10个单词分割一块字符串。 我正在使用下面的代码
我的输入将是一个长字符串
这是一个示例文件,可以作为这个程序的参考,我希望每10个字将这一行拆分(换行)
private void jButton27ActionPerformed(java.awt.event.ActionEvent evt) {
String[] names = jTextArea13.getText().split("\\n");
var S = names.Split().ToList();
for (int k = 0; k < S.Count; k++) {
nam.add(S[k]);
if ((k%10)==0) {
nam.add("\r\n");
}
}
jTextArea14.setText(nam);
output:
this is an example file that can be used as
a reference for this program, i want this line to
be split (newline) by every 10 words each.
感谢您的帮助
# 1 楼答案
带有非捕获组的正则表达式是实现以下目标的更简洁的方法:
上面示例中的
9
就是words-1
,因此,如果希望每20个单词拆分一次,请将其更改为19
这意味着您的代码可能会变成:
对我来说,这更具可读性。当然,在您的情况下,它是否更具可读性取决于您的代码库用户是否相当精通正则表达式
# 2 楼答案
你是如此接近
在将拆分后的单词重新设置到文本框之前,您没有添加拆分后的单词。StringBuilder
sb.append(S[k])
将把分割名称添加到缓冲区中sb.append(" ")
然后将添加一个空格。每行由10个空格分隔的名称组成最后,使用以下方法将其打印回jTextArea:
只是一个旁注,因为sb是StringBuilder,所以需要使用toString nethod将其更改为string
# 3 楼答案
您也可以尝试利用Javautil