我在java中拆分值时遇到了问题。我有一个字符串,必须使用方法.split()
进行拆分,但我需要返回此值。
例如我有这个字符串:
[#ff0000]red[#0000ff]blue
现在我需要你为红色返回值FF0000,为蓝色返回值0000FF。
示例:
String str = "[#FF0000]red[#0000FF]blue";
String[] ss = str.split("\\[\\#([0-9a-f]{6})\\]");
for (String s : ss) {
System.out.println(s);
}
正确拆分字符串,但不知道如何返回十六进制值。感谢任何人帮助我。
答案 0 :(得分:1)
如果您可以确定自己的输入格式,为什么不以#
个字符进行拆分并获取每个部分的前六个字符?像
String str = "[#FF0000]red[#0000FF]blue";
String[] ss = str.split("#");
for (String s : ss) {
if (s.length() >= 6) {
System.out.println(s.subsstring(0, 6));
}
}
这显然不是最优雅的解决方案,但它是实现您使用split
方法所要求的简单方法。
答案 1 :(得分:1)
首先按[然后拆分]
进行拆分String str = "[#FF0000]red[#0000FF]blue";
String[] ss = str.split("\\[");
String[] sRe = Arrays.copyOfRange(ss, 1, ss.length);
for (String s : sRe) {
System.out.println(s.split("\\]")[0]);
System.out.println(s.split("\\]")[1]);
}