用分隔符拆分字符串

时间:2014-04-28 04:55:54

标签: java regex string split apache-commons

我有String作为param1=HUvguys83789r8====我必须将其与=分隔符分开。我已尝试使用String.split("=")以及我也使用过StringUtils但我无法正确拆分它。有人可以帮我解决这个问题。

String parameters = "param1=HUvguys83789r8===="
String[] string = StringUtils.split(parameters, "=");
parameters.split("=");

我的输出为[param1, HUvguys83789r8]

我需要输出为[param1, HUvguys83789r8====]

4 个答案:

答案 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标准