自动转义引号

时间:2015-01-23 23:12:47

标签: java string

我有一个类似于:

的文本文件
word("word1");
word("word2");
word("word3");
etc

(从网站复制)

我想编写一个java程序来获取每个单词(word1,word2等)并将其放在String []中。 输出将是

my_list = {"word1", "word2" etc};

我想把原始输入放在括号之间,使其成为一个字符串然后处理它,但问题是我需要手动转义文件中的每个“”。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

你为什么要做单词()?如果您不需要,请删除它,只需让文本文件如下所示:

word1
word2
word3

如果您确实需要文本文件看起来像这样,请通过拆分:

来读取每一行
String thisWord = parsed.split("\"")[1];

答案 1 :(得分:1)

你的意思是:

try {
        String text = "word(\"word1\");\n"
                + "word(\"word2\");\n"
                + "word(\"word3\");\n"
                + "etc";
        Pattern pattern = Pattern.compile("\".*?\"");
        Matcher matcher = pattern.matcher(text);
        ArrayList<String> list = new ArrayList<>();
        while (matcher.find()) {
            list.add(matcher.group(0));
        }
        StringBuilder out = new StringBuilder("my_list = {");
        for (Iterator<String> iterator = list.iterator(); iterator.hasNext();) {
                out.append(iterator.next());
            if(iterator.hasNext())
                out.append(", ");
        }
        out.append("};");
        JOptionPane.showMessageDialog(null, out.toString());
    } catch (PatternSyntaxException ex) {
        // Syntax error in the regular expression
    }