java - 将字符串分解为字符串数组

标签 java

有源字符串

str = "one
 two
 three
 four
 five
 six
 seven
 eight
 nine" 

我想获取一个字符串数组

String[] mas; 
mas[0] = "one
 two
 three
 four" 

mas[1] =five 
six 
seven 
eight" 

mas[2] ="nine"

我想要一个超出我的范围的函数来处理字符串数组。并且在数组的每一行中应该从原始字符串中获取 4 或 6 或 N 行

最佳答案

使用 String.split() regex \\s+ (例如 \n+,具体取决于您确切想要的内容)。

如果需要,您可以连接 2 个或更多字符串,但在使用 split() 获得数组之后- 这应该相当简单,尝试一下!

祝你好运。如果您在实现第二部分时遇到问题,请随时提出任何问题。

<小时/>

编辑:似乎您在连接字符串时遇到了麻烦。这应该通过简单的迭代和 StringBuilder 来完成:

    int SIZE = 4; 
    String[] arr = str.split("\\s+");
    List<String> res = new ArrayList<>();
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < arr.length; i++) {
        sb.append(arr[i]).append('\n');
        if (i % SIZE == SIZE-1) { 
            res.add(sb.toString());
            sb  = new StringBuilder();
        }
    }
    if (sb.length() != 0) res.add(sb.toString());
    System.out.println(res);
}

请注意resList<String> ,如果您希望将其作为数组,则可以随时使用 toArray()方法。

关于java - 将字符串分解为字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22063953/

相关文章:

java - 绝对最快的 Java HTML 转义函数

java - 尝试在空对象引用上调用虚拟方法 'void android.view.View.measure(int, int)'

java - Java流中map().map()的执行顺序

java - JSP/Servlet 引擎会忽略 CDATA 部分中的标签吗?

java - 使用 Apache Spark 获取 S3 存储桶中的所有文件名列表

java - 添加 ByteArrayOutputStreams

java - 线程的创建和启动

java - 为什么继承在 Java 中以这种方式工作?

java - 如何重新绘制我的 JTable

java - 剪辑有时无法播放