这是我的字符串
1 AP(PEAR + ANC)E (CAN anag)
14 EN(T)ICE (NIECE anag)
15 CHIC(“SHEIK”霍姆)
该字符串隐藏了一个答案, 第一个字符串有答案 APPEARANCE,第二个字符串有答案 ENTICE 我必须从字符串中单独提取那些特定的答案。 我试图通过
从中提取这些词String input = "AP(PEAR + ANC)E (CAN anag)";;
String output = input.substring(0, input.indexOf(' '));
System.out.println(output);
输出:
AP(梨
如您所见,R 后面有一个空格,因此子字符串停在那里,因此输出也如此。但是有没有办法读到字符“E”(即字符串“APPEARANCE”的末尾)?如果有空格并且如果下一个字符是“(”,我想停止阅读。
我在同一程序中有另一种类型的字符串“EN(T)ICE (NIECE anag)”
String input = "EN(T)ICE (NIECE anag)";
String output = input.substring(0, input.indexOf(' '));
System.out.println(output);
输出:
EN(T)ICE
字符“E”后面有一个空格,因此它成功地给出了完整的输出。有没有办法让第一个字符串得到这样的输出。 ?任何帮助都会很棒!!
最佳答案
使用replaceAll
代替indexOf
和substring
。
String[] inputs = {
"AP(PEAR + ANC)E (CAN anag)",
"EN(T)ICE (NIECE anag)",
"CHIC (\"SHEIK\" hom)"};
for (String s : inputs) {
String output = s.replaceAll(" \\(.*|[()+\\s]", "");
System.out.println(output);
}
结果:
APPEARANCE
ENTICE
CHIC
关于java - java中提取省略某些字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36937043/