我试着看几个例子,但是无法弄清楚如何或最好的方法从这样的字符串中获取两个值:
setEditMode | Ändringsläge
我可以获得第一个值但是如何在“|”之后得到第二个值?
我尝试过使用Pattern和Matcher,还使用了split()。
public static void main(String[] args) {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("C:\\Temp\\translate\\en.lang"));
String line;
while ((line = br.readLine()) != null) {
String[] values = line.split("\\|");
String v1 = values[0];
String v2 = values[1];
System.out.println(v2);
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
java.lang.ArrayIndexOutOfBoundsException:1
当只在System.out中打印“line”时,我得到:
archiveLoad | Loading archives
archiveLoadCount | Archives uploaded:
archiveLoadStage | Stage:
archiveLoadFilesCount | Files uploaded:
archiveLoadElapsedTime | Time elapsed:
archiveLoadInit | Initialization
archiveLoadUndeletableIntervals | Loading undeletable intervals
archiveLoadDb | Loading from database
archiveLoadDisk | Loading from disk
archiveLoadProblemIntervals | Loading data about problems
答案 0 :(得分:3)
您可以使用分段,如评论中所示
String line = "aaaa | aaaa";
String[] values = line.split("\\|");
String v1 = values[0];
String v2 = values[1];
除了|
之外,您还可以使用捕获两次的正则表达式:([^|]+)|([^|]+)
答案 1 :(得分:0)
这取决于您希望输出的方式,但可以使用以下内容轻松完成:
([a-zA-ZåäöÖÄÅ]+|[a-zA-ZåäöÖÄÅ]+)
。
将匹配所有字母,包括åäö/ÅÄÖ。在你的正则表达式中添加0-9以匹配数字:
(([0-9a-zA-ZåäöÖÄÅ]+|[0-9a-zA-ZåäöÖÄÅ]+)
)