Abb*_*y44 7 java string string-matching
我正在寻找一种方法,每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.
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏。
我正在寻找一种每10个字分割我的字符串块的方法
具有非捕获组的正则表达式是实现此目的的更简洁方法:
str = str.replaceAll("((?:[^\\s]*\\s){9}[^\\s]*)\\s", "$1\n");
Run Code Online (Sandbox Code Playgroud)
在9上述例子只是words-1,所以如果你想要的是每20个单词拆分,例如,将其更改为19。
这意味着您的代码可能变成:
jTextArea14.setText(jTextArea13.getText().replaceAll("((?:[^\\s]*\\s){9}[^\\s]*)\\s", "$1\n"));
Run Code Online (Sandbox Code Playgroud)
对我来说,这更具可读性。当然,在您的情况下它是否更具可读性取决于代码库的用户是否相当精通regex。