Java 将字符串[]转换为字符串,然后拆分为数组

Java 将字符串[]转换为字符串,然后拆分为数组,java,arrays,string,list,split,Java,Arrays,String,List,Split,我需要帮助创建一个拆分字符串的循环。到目前为止,我有下面的代码 System.out.println("*FILE HAS BEEN LOCATED*"); System.out.println("*File contains: \n"); List<String> lines = new ArrayList<String>(); while (scan.hasNextLine()) { lines.add(scan.

我需要帮助创建一个拆分字符串的循环。到目前为止,我有下面的代码

    System.out.println("*FILE HAS BEEN LOCATED*");
    System.out.println("*File contains: \n");
    List<String> lines = new ArrayList<String>();
    while (scan.hasNextLine()) 
    {
      lines.add(scan.nextLine());
    }

    String[] arr = lines.toArray(new String[0]);

    String str_array = Arrays.toString(arr);

    String[] arraysplit;
    arraysplit = str_array.split(":");

    for (int i=0; i<arraysplit.length; i++)
    {
        arraysplit[i] = arr[i].trim();
        System.out.println(arr[i]);
    }
我希望它将字符串拆分为另一个数组,如下所示:

        Firstname
        Lastname
        age
我在运行代码时仍然会遇到一个错误,似乎当我将数组转换为字符串时,它会在字符串中添加逗号,因此在尝试拆分字符串时会出现问题:不是

图片:
问题:您正在使用旧数组
arr
来显示值,
arraysplit
将具有
split
方法的结果值,因此您需要对
arraysplit
的元素应用
trim()
,并将元素分配回相同的索引

String[] arraysplit;
arraysplit = str_array.split(":");

for (int i=0; i<arraysplit.length; i++)
{
    arraysplit[i] = arraysplit[i].trim();
    //              ^^^^^^^^^^^^ has values with spaces
    System.out.println(arr[i]);
}

System.out.println(arraysplit[i]);

您可以使用
str_array.split(“\\s*:\\s*”)哪里

\\s*:\\s*
\\s*
表示零个或多个空格,然后是
字符,然后是零个或多个空格

arraysplit = str_array.split("\\s*:\\s*");
// just use values of arraysplit

使用此正则表达式拆分
\s*:\s*

String[] arraysplit = str_array.split("\\s*:\\s*");
详情:

  • \s*
    零个或多个空格
  • 后跟侧字符
  • 后跟
    \s*
    零个或多个空格


问题是什么?是不是你把事情弄得太复杂了<代码>“Firstname:Lastname:age”。拆分(\\s*:\\s*”)
应该会给出您想要的结果。这个问题仍然毫无意义。您可以调用
Arrays.toString(arr)
,它使用
作为分隔符将每个数组项清楚地写入一个字符串,但您希望它的行为与文档中的行为不同。为什么?请看我的问题附带的图片,因为我在运行代码时仍然遇到错误,似乎当我将数组转换为字符串时,它在字符串中放入逗号,因此在我尝试拆分字符串时会导致问题:不是,@rxbert您的输入是否可能有字母和数字以外的特殊字符?如果没有,那么简单的方法是
arraysplit=str\u array.split(“\\s*\\W\\s*”)请看我的问题附带的图片,因为我在运行代码时仍然遇到错误,似乎当我将数组转换为字符串时,它在字符串中放入逗号,因此在我尝试拆分字符串时会导致问题:不是,
arraysplit = str_array.split("\\s*:\\s*");
// just use values of arraysplit
String[] arraysplit = str_array.split("\\s*:\\s*");