JAVA - 从String中提取多个部分

时间:2016-08-02 08:58:32

标签: java regex string

我有一个动态字符串(来自SQL查询),看起来像这样

String x="abc_123_456_defgh_ijkl_mnop_qr"

首先我用子串(x,y)将它们分成不同的变量,但现在我发现每个部分的长度可能会有所不同。 这意味着我需要按字符分隔字符串。

目标是:

String x1=abc
String x2=123
String x3=456
String x4=defgh
...

我无法让正则表达式工作......也许是因为我对JAVA很新:( 提前谢谢!

3 个答案:

答案 0 :(得分:0)

考虑拆分为underScore:

function trimAllFieldsInObjectAndChildren(o: any) {
  return JSON.parse(JSON.stringify(o).replace(/"\s+|\s+"/g, '"'));
}

import * as _ from 'lodash';
assert.true(_.isEqual(trimAllFieldsInObjectAndChildren(' bob '), 'bob'));
assert.true(_.isEqual(trimAllFieldsInObjectAndChildren('2 '), '2'));
assert.true(_.isEqual(trimAllFieldsInObjectAndChildren(['2 ', ' bob ']), ['2', 'bob']));
assert.true(_.isEqual(trimAllFieldsInObjectAndChildren({'b ': ' bob '}), {'b': 'bob'}));
assert.true(_.isEqual(trimAllFieldsInObjectAndChildren({'b ': ' bob ', 'c': 5, d: true }), {'b': 'bob', 'c': 5, d: true}));
assert.true(_.isEqual(trimAllFieldsInObjectAndChildren({'b ': ' bob ', 'c': {' d': 'alica c c '}}), {'b': 'bob', 'c': {'d': 'alica c c'}}));
assert.true(_.isEqual(trimAllFieldsInObjectAndChildren({'a ': ' bob ', 'b': {'c ': {'d': 'e '}}}), {'a': 'bob', 'b': {'c': {'d': 'e'}}}));
assert.true(_.isEqual(trimAllFieldsInObjectAndChildren({'a ': ' bob ', 'b': [{'c ': {'d': 'e '}}, {' f ': ' g ' }]}), {'a': 'bob', 'b': [{'c': {'d': 'e'}}, {'f': 'g' }]}));

答案 1 :(得分:0)

您可以使用拆分方法

    String x="abc_123_456_defgh_ijkl_mnop_qr";
    String parts[]=x.split("_");
    String x1=parts[0];
    String x2=parts[1];
            ...

您可以在http://www.tutorialspoint.com/java/java_string_split.htm

查看更多信息

答案 2 :(得分:0)

如果你有更多的分隔符

public class StringSplit {

   public static void main(String[] args) {

   String str = "S t, a, c.k";
   String delimiters = "\\s+|,\\s*|\\.\\s*";

   // analyzing the string 
   String[] values = str.split(delimiters);



   for(String value : values) {
   System.out.print(value);
   } 
   }
}