需要修改代码的帮助:Java FileIO

需要修改代码的帮助:Java FileIO,java,string,file-io,bufferedreader,filereader,Java,String,File Io,Bufferedreader,Filereader,我需要帮助修改代码。在记事本上,写的是名字中间的首字母和姓氏。创建的代码如下所示: import java.io.*; public class Names{ public static void main (String args [])throws IOException{ BufferedReader f = new BufferedReader(new FileReader("Names.txt")); String a = f.toString(); Stri

我需要帮助修改代码。在记事本上,写的是名字中间的首字母和姓氏。创建的代码如下所示:

import java.io.*;
public class Names{
public static void main (String args [])throws IOException{

    BufferedReader f = new BufferedReader(new FileReader("Names.txt"));
    String a = f.toString();
    String name[] = new String[a.length()];
    String n = f.readLine();

    int x = 0;
    while (n!= null){
        name[x] = n;
        String names[] = new String[a.length()];

        for (int z = 0; z< name[x].length()-1; z++){
            if (name[x].charAt(z) == '.'){
            names[0] = name[x].substring(0,z-2);
            for (int bry = z-2; bry < name[x].length()-1; bry++){
                if (name[x].charAt(bry) == ' '){
                    names[1] = name[x].substring(z-2,bry);
                    for (int bry2 = bry; bry2<name[x].length()-1; bry2++){
                        if (name[x].charAt(bry2) == ' '){
                            names[2] = name[x].substring(bry2,      
  name[x].length());
                        }
                    }
                }
            }
        }
        }
        System.out.println("First Name: " + names[0]);
        System.out.println("M.I: " + names[1]);
        System.out.println("Family Name: " + names[2] + "\n");
        n = f.readLine();
        x++;

    }

}
}
import java.io.*;
公共类名{
公共静态void main(字符串args[])引发IOException{
BufferedReader f=新的BufferedReader(新文件读取器(“Names.txt”);
字符串a=f.toString();
字符串名称[]=新字符串[a.length()];
字符串n=f.readLine();
int x=0;
while(n!=null){
名称[x]=n;
字符串名称[]=新字符串[a.length()];
对于(int z=0;z
    BufferedReader f = new BufferedReader(new FileReader("Names.txt"));
    String n = f.readLine();
    while (n != null)
    {
        String[] names = n.split("\\s");
        System.out.println("First Name: " + names[0]);
        System.out.println("M.I: " + names[1]);
        System.out.println("Family Name: " + names[2] + "\n");
        n = f.readLine();
    }

我会使用
String.split()
。如果您的文本文件看起来像:“Tom TW wellrock”,我会在空白处分隔输入字符串。如果您的属性用逗号分隔,请在此处拆分:

    BufferedReader fileReader = new BufferedReader(new FileReader("Names.txt"));
    String input = fileReader.readLine(); //please choose other names for you variables they are confusing

     while (input != null){

      String[] parts = input.split(" "); //you can seperate with any Symbol
      System.out.println(parts[0]) //your first name
      System.out.println(parts[1]) //your initial
      System.out.println(parts[2]) //your last name
      input = fileReader.readLine();
     }

问题是什么?名字、中间名和姓氏之间的分隔符是什么?当前输出是什么?文件
names.txt的输入是什么?@Sybren:假设这是输入到names.txt上的名字。txt:Erwin Jacob A.Watson John Jason B.Watsan Bryan B.Riben Yasuo Riven D.Teemo预期输出:first Na我:欧文·雅各布M.I:A.姓氏:沃森名字:布莱恩M.I:B.姓氏:里本名字:欧文·雅各布M.I:A.姓氏:沃森名字:安索·里文M.I:D.姓氏:蒂莫亚斯在其他答案中建议看A
String.split()
正如我在Answare中所建议的那样,我们只是在空白处拆分字符串。我的解决方案应该能立即为您解决问题pattern@RahulYadav从哪里获取索引号?对于名称[0]、[1]和[2]@BlackHusky由于您使用了字符串的Spillt方法,它将返回大小为3、索引为零的数组,因此0,1,2我想您想问我:D方法Strin.split()将字符串分隔为单独的字符串数组“1 2 3 4”->数组[0]=1,数组[1]=2…在您的情况下,第一个数组(索引为0)将是您的名字,第二个数组是您的首字母,最后一个数组是您的家人name@tomwellbrock如果有第二个名字呢?比如Bryan Dexter T.Watson,应该显示如下:名字:Bryan Dexter M.I.:T.姓氏:Watson这会是个问题。你可以将txt文件的模式更改为“Bryan Dexter,T.Watson”如果长度大于3 firstname=array[0]+“”+array[1],则可以检查数组的
.lenght