Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用空格分隔符从文件中读取_Java - Fatal编程技术网

Java 使用空格分隔符从文件中读取

Java 使用空格分隔符从文件中读取,java,Java,大家好,我需要帮助读取带有空格分隔符的文件。例如,问题是我得到了一个文本文件,格式如下:id name 例如: 我的名字 如何将字符串(我的名字)组合在一起,因为我尝试过的代码只会得到我(我的名字)。我无法更改文本文件中的分隔符 while(myScanner.hasNextLine()) { String readLine = myScanner.nextLine(); String readData[] = re

大家好,我需要帮助读取带有空格分隔符的文件。例如,问题是我得到了一个文本文件,格式如下:id name

例如:

我的名字

如何将字符串(我的名字)组合在一起,因为我尝试过的代码只会得到我(我的名字)。我无法更改文本文件中的分隔符

        while(myScanner.hasNextLine())
        {
            String readLine = myScanner.nextLine();
            String readData[] = readLine.split(" ");
            String index = readData[0];
            String name = readData[1];

        }
        myScanner.close();

如果始终是id空间名称,后面没有任何内容,则可以执行以下操作:

String readLine = myScanner.nextLine();
int split = readLine.indexOf(" ");
String index = readLine.substring(0, split);
String name = readLine.substring(split + 1);
但是,只有当这两个字段是唯一的两个字段时,这才会起作用。如果在此之后添加更多字段,则无法(常规)确定项目2结束和项目3开始的位置

另一种方法是使用
next
nextInt
等,准确读出您想要的内容:

String index = myScanner.next(); //Or int index = myScanner.nextInt();
String name  = myScanner.nextLine().substring(1); //drop the leading space
这是一种更灵活的方法,可能更适合您的需要。

使用以下代码

    while(myScanner.hasNextLine())
{
    String readLine = myScanner.nextLine();
    if(null != readLine && readLine.length()>0) {
        String index = readLine.substring(0, id.indexOf(" "));
        String name = readLine.substring(id.indexOf(" ") + 1);
    }

}
myScanner.close();

索引2将包含名称,然后您可以简单地将两者连接起来(即my和name以获得所需的结果)。嗯,但是如果名称只是name而不是my name,那么索引2将出现错误