【问题标题】:In JAVA, how do you split a text file in three characters? [duplicate]在 JAVA 中,如何将文本文件拆分为三个字符? [复制]
【发布时间】:2021-07-10 22:56:38
【问题描述】:

我想拆分一个包含所有连接词“ABCDEFGHIJKLMNOPQRSTUVWXYZ”的文本文件 我希望我的输出打印出来:

ABC
DEF
GHI
JKL 

我试过了:

String text = StdIn.readAll();
String parts [] = text.split("\\s ",3);
for(String a: parts)
    System.out.println(a);

【问题讨论】:

标签: java split


【解决方案1】:

这个答案应该有效,请参阅此类似帖子Split string to equal length substrings in Java

String[] parts = text.split("(?<=\\G.{3})");

【讨论】:

  • 嗨,很好的发现,但为了将来 - 如果您发现现有的类似问题有答案,最好将此问题标记为重复,而不是一遍又一遍地从一个帖子复制到另一个帖子: )
  • 谢谢!如果您能解释一下每个部分的含义,请说明 ("(?
  • @NemanjaM 如果您点击链接,其他用户已在此处进行了解释。
【解决方案2】:

replaceAll 插入分隔符,然后用split 分割字符串。

public static void main(String[] args) {

    String text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    String parts[] = text.replaceAll("(.{3})", "$1,").split(",");
    
    for (String a : parts)
        System.out.println(a);
}

结果:

ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
YZ

【讨论】:

    【解决方案3】:

    .substring()解决方案:

    String text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    for(int i= 0; i < text.length(); i+=3)
      System.out.println((i+3 <= text.length() ? text.substring(i, i+3) : text.substring(i)));
    

    结果:

    ABC
    DEF
    GHI
    JKL
    MNO
    PQR
    STU
    VWX
    YZ
    

    【讨论】:

    • 不兼容所有 Unicode 字符。运行:`“AB?DEFGHIJKLMNOPQRSTUVWXYZ”`作为输入。输出:AB? ?DE FGH
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多