我有一个示例字符串,例如
"ZZZ-1234567890-from ABC-2 DEF"
我需要输出:
"from ABC-2 DEF"
所有样本字符串的格式为
"ZZZ-numbers-Strings"
我需要在
后获取字符串部分 "ZZZ-numbers-"
我尝试使用split()
但无法解决它。感谢帮助!
答案 0 :(得分:1)
再次阅读您的问题后,您知道String
的格式为
" ZZZ号码串"并且你想要" ZZZ-numbers - "
之后的所有内容然后你可以使用" ZZZ- \ d + - "的正则表达式模式进行拆分。这将产生一个2元素数组,您希望结果为索引1。
public static void main(String[] args) throws Exception {
String data = "ZZZ-1234567890-from ABC-2 DEF";
String[] split = data.split("ZZZ-\\d+-");
System.out.println(split[0]);
System.out.println(split[1]);
}
结果:
(blank line for split[0])
from ABC-2 DEF
这看起来更像是substring()
和indexOf()
的工作,只要"来自"在您的String
中只存在一次,并且您希望捕获"之后的所有内容。包括"来自"。
public static void main(String[] args) throws Exception {
String data = "ZZZ-1234567890-from ABC-2 DEF";
System.out.println(data.substring(data.indexOf("from")));
}
结果:
来自ABC-2 DEF
答案 1 :(得分:1)
根据您的格式,您可能想删除第一部分“ZZZ-numbers - ”
使用replaceAll和正则表达式做的伎俩(灵感来自@ Shar1er80答案):
public static void main(String[] args) {
String data = "ZZZ-1234567890-from ABC-2 DEF";
System.out.println(data.replaceAll("^.{3}[-][0-9]+[-]",""));
}
答案 2 :(得分:0)
轻松,使用String.split("ZZZ-\\d+-")[1]