我有String
作为param1=HUvguys83789r8====
我必须将其与=
分隔符分开。我已尝试使用String.split("=")
以及我也使用过StringUtils
但我无法正确拆分它。有人可以帮我解决这个问题。
String parameters = "param1=HUvguys83789r8===="
String[] string = StringUtils.split(parameters, "=");
parameters.split("=");
我的输出为[param1, HUvguys83789r8]
我需要输出为[param1, HUvguys83789r8====]
答案 0 :(得分:3)
你真的只想在第一次出现=
时进行拆分,所以这样做
parameters.split("=", 2)
重载的split(String, int)
javadoc状态
如果限制n大于零,则将应用模式 最多n - 1次,数组的长度不会大于n,并且 数组的最后一个条目将包含除最后一个匹配之外的所有输入 分隔符。
答案 1 :(得分:2)
我会这样使用String#indexOf(char ch),
private static String[] splitParam(String in) {
int p = in.indexOf('=');
if (p > -1) {
String key = in.substring(0, p);
String value = in.substring(p + 1);
return new String[] {key, value};
}
return null;
}
public static void main(String[] args) {
String parameters = "param1=HUvguys83789r8====";
System.out.println(Arrays.toString(splitParam(parameters)));
}
输出
[param1, HUvguys83789r8====]
答案 2 :(得分:2)
使用备用版split()
分割一次:
String[] strings = parameters.split("=", 2); // specify max 2 parts
测试代码:
String parameters = "param1=HUvguys83789r8====";
String[] strings = parameters.split("=",2);
System.out.println(Arrays.toString(strings));
输出:
[param1, HUvguys83789r8====]
答案 3 :(得分:1)
我认为你需要:
String parameters = "param1=HUvguys83789r8====";
String[] string = parameters.split("\\w=\\w");
String part1 = string[0]; // param
String part2 = string[1]; // Uvguys83789r8====
System.out.println(part1);
System.out.println(part2);
确保转义斜杠以使其符合java标准