簡體   English   中英

在Java中讀取具有多個定界符的文件行

[英]Reading file line with multiple delimiters in java

我正在嘗試使用多個分隔符逐行讀取文件。 我正在使用正則表達式進行拆分,但未將空格(“”)作為定界符。 文件包含;,#,和空格作為分隔符。 我究竟做錯了什么? 文件行看起來像這樣-ADD R1,R2,R3

public static void initialize() throws IOException {
    PC = 4000;
    BufferedReader fileReader = new BufferedReader(new FileReader("test/ascii.txt"));
    String str;
    while((str = fileReader.readLine()) != null){
        Instruction instruction = new Instruction();
        String[] parts = str.split("[ ,:;#]");
        instruction.instrAddr = String.valueOf(PC++);
        System.out.println(instruction.instrAddr);
        instruction.opcode = parts[0];
        System.out.println(instruction.opcode);
        instruction.dest = parts[1];
        System.out.println(instruction.dest);
        instruction.source_1 = parts[2];
        System.out.println(instruction.source_1);
        instruction.source_2 = parts[3];
        System.out.println(instruction.source_2);    
    }
    fileReader.close();}

輸出顯示4000(PC值),ADD,R1,“”和R2。 如何避免空間? 正則表達式str.split(“ [,:;#]”);有什么問題嗎?

您確定這些實際上是空格嗎?

這應該適用於任何空格:

@Test
public void test() {
    String s = "1 2,3:4;5#6\t7";
    Assert.assertEquals(7, s.split("[\\s,:;#]").length);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM