我有一个类似于:
的文本文件word("word1");
word("word2");
word("word3");
etc
(从网站复制)
我想编写一个java程序来获取每个单词(word1,word2等)并将其放在String []中。 输出将是
my_list = {"word1", "word2" etc};
我想把原始输入放在括号之间,使其成为一个字符串然后处理它,但问题是我需要手动转义文件中的每个“”。
我该如何解决这个问题?
答案 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
}