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*");