这是我的字符串
1 AP(PEAR + ANC)E(CAN anag)
14 EN(T)ICE(NIECE anag)
15 CHIC(“SHEIK”hom)
字符串隐藏了答案, 第一个字符串的答案是APPEARANCE,第二个字符串是ENTICE 我必须从字符串中单独提取这些特定答案。 我试图通过
从中提取这些词String input = "AP(PEAR + ANC)E (CAN anag)";;
String output = input.substring(0, input.indexOf(' '));
System.out.println(output);
输出:
AP(PEAR
正如你所看到的,在R之后有一个空格,所以子串停在那里,所以输出。但有没有办法读到字符'E'(即字符串'APPEARANC E '的结尾)?如果有空格,我想停止阅读>>如果下一个字符是'('。
我在同一个程序“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'后面有一个空格,所以它成功地给出了完整的输出。有没有办法为第一个字符串输出这样的输出。 ?任何帮助都会很棒!!
答案 0 :(得分:3)
使用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
答案 1 :(得分:1)
您可以尝试将此字符串拆分为" ("
:
String input1 = "EN(T)ICE (NIECE anag)";
String input2 = "AP(PEAR + ANC)E (CAN anag)";
String input3 = "CHIC (\"SHEIK\" hom)";
System.out.println(extract(input1));
System.out.println(extract(input2));
System.out.println(extract(input3));
public static String extract(String s){
return s.split(" \\(.*")[0]
.replace("(", "")
.replace(")", "")
.replace(" + ", "");
}
将产生:
<强> ENTICE 强>
<强>外观强>
<强> CHIC 强>
答案 2 :(得分:1)
拆分&#34; (&#34 ;;
像这样:String input = "AP(PEAR + ANC)E (CAN anag)";
System.out.println(input.split(" \\(.*")[0]);
只需用新值替换String输入!
答案 3 :(得分:1)
你不能只用" + "
替换{,1}}然后除以" "
(空格)吗?
这样的事情:
private static String convertInputToOutput(final String input) {
String[] splittedArray = input.replaceAll(" \\+ ", "").split(" ");
return splittedArray[0];
}
public static void main(final String[] args) {
System.out.println(convertInputToOutput("AP(PEAR + ANC)E (CAN anag)"));
System.out.println(convertInputToOutput("EN(T)ICE (NIECE anag)"));
System.out.println(convertInputToOutput("CHIC (\"SHEIK\" hom)"));
}
输出:
AP(PEARANC)E
EN(T)ICE
CHIC
如果您想要不带括号的输出,也可以使用replaceAll
作为括号:
private static String convertInputToOutput(final String input) {
String[] splittedArray = input.replaceAll(" \\+ ", "").split(" ");
return splittedArray[0].replaceAll("(", "").replaceAll(")", "");
}
输出:
APPEARANCE
ENTICE
CHIC