Java 如何修改/拆分数组中的双字符串

Java 如何修改/拆分数组中的双字符串,java,arrays,split,Java,Arrays,Split,如何在“firstName lastName”表单(例如:Anna Hale)中创建名的数组中发送的方法。该方法以“first---last”的形式返回名称(通过return语句)。下面是我的全名数组 public static void readData(String file) throws FileNotFoundException { x = new Scanner(new File(file)); n = 0; while(x.hasNextLine()) {

如何在“firstName lastName”表单(例如:Anna Hale)中创建名的
数组中发送的方法。该方法以“first---last”的形式返回名称(通过return语句)。下面是我的全名数组

public static void readData(String file) throws FileNotFoundException {
    x = new Scanner(new File(file));

    n = 0;
    while(x.hasNextLine()) {
        n++;
        x.nextLine();
    }
    name = new String[n];
    Scanner x1 = new Scanner(new File(file));

    for(int i = 0; i < name.length; i++ ) 
        name[i] = x1.nextLine();
        System.out.println(Arrays.toString(name));
}
publicstaticvoidreaddata(字符串文件)抛出FileNotFoundException{
x=新扫描仪(新文件(文件));
n=0;
while(x.hasNextLine()){
n++;
x、 nextLine();
}
名称=新字符串[n];
扫描仪x1=新扫描仪(新文件(文件));
for(int i=0;i
这里是完整的代码,假设您想从
文件中读取。请更正所发布代码中的编译时错误。由于您事先不知道数组的长度,因此无法初始化数组,或者您可以更改逻辑以获得行数,然后初始化数组

文件内容如下所示:

abc xyzzy
And sdff
Asdf sdfw
输出如下所示

[abc--xyzzy, And--sdff, Asdf--sdfw]
在下面的代码
name[i]中,替换(“,”--”)将空格
替换为
--

代码:

x.nextLine()的值需要分配给变量,例如
line=x.nextLine()
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Post1 {

    public static void main(String[] args) throws FileNotFoundException {
         String[] transformedNames = readData("/Users/kuma/Desktop/post1.txt");
         System.out.println(Arrays.toString(transformedNames));
    }

    public static String[] readData(String file) throws FileNotFoundException {
        Scanner x = new Scanner(new File(file));
        List<String> list = new ArrayList<>();

        while(x.hasNextLine()) {
            list.add(x.nextLine());
        }
        x.close();
        String[] name = new String[list.size()];

        list.toArray(name);

        String[] transformedNames = new String[list.size()];

        for(int i = 0; i < name.length; i++ ) 
            transformedNames[i] = name[i].replace(" ", "--");

        return transformedNames;
    }

}
private static String[] readDataUsingJava8() {
        String[] transformedNames = null;
        try (Stream<String> stream = Files.lines(Paths.get( "/Users/kuma/Desktop/post1.txt"))) {
            transformedNames =
             stream.map(new Function<String, String>() {

                @Override
                public String apply(String t) {
                    // TODO Auto-generated method stub
                    return t.replace(" ", "--");
                }
            }).toArray(String[]::new);

        } catch (IOException e) {
            e.printStackTrace();
        }
        return transformedNames;
    }