Java文本文件从特定字符读取并放入不同的TextField

时间:2013-01-29 01:31:45

标签: file text jtextfield

我正在尝试从文本文件中读取文本文件:

champ[34] = "ABC"; w1[34] = "Nick"; w2[34] = "SAM"; w3[34] = "Ronald";  
w4[34] = "Richeal"; w5[34] = "George"; w6[34] = "Sarah"; w7[34] = "Karin";  
w8[34] = "Chris"; w9[34] = "Christina";

我有10个Textfields。我想读取文本文件,当读者检查是否有(“)时,我将开始将ABC放到第一个textField,然后第二个textField将放入Nick ...

并且在文本文件中,它只有一行,但是当你读它时,它会出现3行,当我保存到文本文件时,我用“\ n”设置它。

有没有这样做?

1 个答案:

答案 0 :(得分:0)

将所有文件内容读取到一个字符串变量。 然后使用正则表达式来获取匹配的子字符串。 模式应该是这样的:得到=(可以有零到多个空格)“和”(可以有零到多个空格)之间的最短文本;

阅读http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html了解详情。

e.g:

 String str = "champ[34] = \"ABC\"; w1[34] = \"Nick\"; w2[34] = \"SAM\"; w3[34] = \"Ronald\"; w4[34] = \"Richeal\"; "
            + "w5[34] = \"George\"; w6[34] = \"Sarah\"; w7[34] = \"Karin\"; w8[34] = \"Chris\"; w9[34] = \"Christina\";";


    Pattern pattern = Pattern.compile("=\\s*\".*?\"\\s*;");
    Matcher matcher = pattern.matcher(str);

    while (matcher.find()) {
        System.out.print("Start index: " + matcher.start());
        System.out.print(" End index: " + matcher.end() + " ");
        System.out.println("group:" + matcher.group());
    }