Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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,我想读一个包含如下文本的大文件: QSSTNAFDQVS, h SSTNAFDQVSA, h STNAFDQVSAQ, h TNAFDQVSAQG, h NAFDQVSAQGK, h AFDQVSAQGKV, h FDQVSAQGKVI, h EAILGDQFLKQ, h AILGDQFLKQQ, h ILGDQFLKQQY, h LGDQFLKQQYV, h VGKMAKSVMGH, h GKMAKSVMGHN, h KMAKSVMGHNW, h MAKSVMGHNWV, h .... Bu

我想读一个包含如下文本的大文件:

QSSTNAFDQVS, h
SSTNAFDQVSA, h
STNAFDQVSAQ, h
TNAFDQVSAQG, h
NAFDQVSAQGK, h
AFDQVSAQGKV, h
FDQVSAQGKVI, h
EAILGDQFLKQ, h
AILGDQFLKQQ, h
ILGDQFLKQQY, h
LGDQFLKQQYV, h
VGKMAKSVMGH, h
GKMAKSVMGHN, h
KMAKSVMGHNW, h
MAKSVMGHNWV, h
....
BufferedReader br = new BufferedReader(file);
            while((line = br.readLine()) != null) {
                String[] values = line.split(",");
                String atributes = values[0];
                String cls = values[1].trim();
                System.out.println(atributes);
            }
我的代码:

BufferedReader br = new BufferedReader(file);
        while((line = br.readLine()) != null) {
            String[] values = line.split(",");
            String atributes = values[0];
            String cls = values[1].trim();
            for (int i=0; i<atributes.length(); i++) {
                char atribute = atributes.charAt(i);
                System.out.print(atribute + " ");
            }
            System.out.println();
        }
如果我进行打印,而不是像这样进行拆分:

QSSTNAFDQVS, h
SSTNAFDQVSA, h
STNAFDQVSAQ, h
TNAFDQVSAQG, h
NAFDQVSAQGK, h
AFDQVSAQGKV, h
FDQVSAQGKVI, h
EAILGDQFLKQ, h
AILGDQFLKQQ, h
ILGDQFLKQQY, h
LGDQFLKQQYV, h
VGKMAKSVMGH, h
GKMAKSVMGHN, h
KMAKSVMGHNW, h
MAKSVMGHNWV, h
....
BufferedReader br = new BufferedReader(file);
            while((line = br.readLine()) != null) {
                String[] values = line.split(",");
                String atributes = values[0];
                String cls = values[1].trim();
                System.out.println(atributes);
            }
我把它们按正确的顺序排列:

QSSTNAFDQVS
SSTNAFDQVSA
STNAFDQVSAQ
TNAFDQVSAQG
NAFDQVSAQGK
AFDQVSAQGKV
FDQVSAQGKVI
EAILGDQFLKQ
AILGDQFLKQQ
.....

如何修复此问题,以便在拆分这些值后,以与文本文件中相同的顺序获取这些值?

我认为问题不在于属性的顺序是随机的,我在代码中看不到与此相关的任何内容。你确定是这样吗?这是完整的密码吗

我运行了以下代码:

String line = "ZYXABCDEFGHIJ, h";
String[] values = line.split(",");
String atributes = values[0];
String cls = values[1].trim();
for (int i=0; i<atributes.length(); i++) {
    char atribute = atributes.charAt(i);
    System.out.print(atribute + " ");
}
String line=“ZYXABCDEFGHIJ,h”;
字符串[]值=行。拆分(“,”);
字符串atributes=值[0];
字符串cls=值[1]。trim();

对于(int i=0;i您的问题在别处-此代码-其功能显然与您的相同:

static final String[] data = {
    "QSSTNAFDQVS, h",
    "SSTNAFDQVSA, h",
    "STNAFDQVSAQ, h",
    "TNAFDQVSAQG, h",
    "NAFDQVSAQGK, h",
    "AFDQVSAQGKV, h",
    "FDQVSAQGKVI, h",
    "EAILGDQFLKQ, h",
    "AILGDQFLKQQ, h",
    "ILGDQFLKQQY, h",
    "LGDQFLKQQYV, h",
    "VGKMAKSVMGH, h",
    "GKMAKSVMGHN, h",
    "KMAKSVMGHNW, h",
    "MAKSVMGHNWV, h",};

public void test() {
    for (String line : data) {
        String[] values = line.split(",");
        String atributes = values[0];
        String cls = values[1].trim();
        for (int i = 0; i < atributes.length(); i++) {
            char atribute = atributes.charAt(i);
            System.out.print(atribute + " ");
        }
        System.out.println();

    }
}

是否有多个线程正在读取该文件?

在第一个代码的输入中,您似乎使用了错误的文件

您能否发布以下结果:

BufferedReader br = new BufferedReader(file);
            while((line = br.readLine()) != null) {
                String[] values = line.split(",");
                String atributes = values[0];
                String cls = values[1].trim();
                System.out.println(atributes);
                System.out.println();
                for (int i=0; i<atributes.length(); i++) {
                   char atribute = atributes.charAt(i);
                   System.out.print(atribute + " ");
                }
                System.out.println();
            }
BufferedReader br=新的BufferedReader(文件);
而((line=br.readLine())!=null){
字符串[]值=行。拆分(“,”);
字符串atributes=值[0];
字符串cls=值[1]。trim();
系统输出打印LN(心房);
System.out.println();


对于(int i=0;iPerhaps这应该是一个注释?你是对的,当我认为有其他错误时,我开始回答。取消删除是因为我检查了他的案例,我确定这段代码不是问题所在。也许我忘了说字符串的元素不是按随机顺序排列的,但文件的行我认为问题不在于属性是随机排列的,我在你的代码中看不到任何与此相关的东西。你确定是这样吗?这是完整的代码吗?我已经发布了所有处理文件读取的代码。我还发布了拆分前后的两个示例+得到的结果。我以文本文件的第一行为例re-else可能是问题所在,因为在添加拆分部分之前,我以正确的方式获取它们,然后在每次运行时以随机的方式获取它们。@dres您的代码在此处工作正常您的文件与您输入到两个代码段的文件不同。这可能是一个注释,我认为这是一个答案-问题不是在张贴的代码中。你用斜体字写的句子不是对一个问得不好的问题的完美评论吗@ᴳᵁᴵᴰᴼ - 我迫不及待地想证明这一点。:)它以相同的随机顺序打印它们,字符串和字符串都被拆分检查在新的BufferedReader(文件)中输入的文件值。如果是相同的顺序,则显然是您使用了错误的输入。我已更改了文件,并且发生了相同的事情。我不明白这些文件可能有什么问题…尝试一个只有QSSTNAFDQVS,h的文件,看看会发生什么。它可以拆分。如果我对一个包含较少行的新文件执行此操作,也可以拆分。我尝试了一个包含15行的文件它工作正常