我有一个动态字符串(来自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很新:( 提前谢谢!
答案 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);
}
}
}