[英]Extract a string omitting certain characters in java
这是我的弦
1个AP(梨+ ANC)E(CAN anag)
14 EN(T)ICE(NIECE anag)
15 CHIC(“ SHEIK” hom)
该字符串具有隐藏的答案,第一个字符串具有答案外观,第二个字符串具有ENTICE,我必须从字符串中单独提取那些特定的答案。 我试图从中提取那些词
String input = "AP(PEAR + ANC)E (CAN anag)";;
String output = input.substring(0, input.indexOf(' '));
System.out.println(output);
输出:
出现
如您所见,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);
输出:
诱惑
字符“ 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
您可以尝试在索引" ("
上分割字符串:
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(" + ", "");
}
将产生:
诱惑
出现
奇克
在“(”上分割;
像这样:
String input = "AP(PEAR + ANC)E (CAN anag)";
System.out.println(input.split(" \\(.*")[0]);
只需将String输入替换为新值即可!
您不能只用空号代替" + "
,然后用" "
(空格)分开吗?
像这样:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.