niuniu1224的gravatar头像
niuniu1224 2016-11-22 17:43:59

java如何实现字符串转指定数组?

有个这样子的字符串    

1,5,15,3#2,8,20,3#@1,30,3#2,25,3#

最后想得到

1,5,3
1,15,3
2,8,3
2,20,3
1,30,3
2,25,3
的数组    

java代码如何实现?

所有回答列表(2)
sayHelloWorld的gravatar头像
sayHelloWorld  LV22 2016年11月22日

可以使用正则,也可以用guava

String str = "1,5,15,3#2,8,20,3#@1,30,3#2,25,3#";
List<String> result = Splitter.onPattern("[,|#|@]").omitEmptyStrings().splitToList(str);
for (String s : result) {
    System.out.println(s);
}
 @Test
    public void test() {
        String str1 = "1,5,15,3#2,8,20,3#@1,30,3#2,25,3#2,33,13,43,3#";
        String str2 = replaceSpecStr(str1);
        List<String> OriginalLists = Arrays.asList(str2.split("#"));
        List<String> results = new ArrayList<String>();
        for (String str : OriginalLists) {
            String[] OriginalArrays = str.split(",");
            if (OriginalArrays.length > 3) {
                String[] tempArrays = str.substring(str.indexOf(",") + 1, str.lastIndexOf(",")).split(",");
                for (String s : tempArrays) {
                    results.add(OriginalArrays[0] + "," + s + "," + OriginalArrays[OriginalArrays.length - 1]);
                }
            } else {
                results.add(str);
            }
        }
        for (String result : results) {
            System.out.println(result);
        }
    }


    private static String replaceSpecStr(String orgStr) {
        if (null != orgStr && !"".equals(orgStr.trim())) {
            String regEx = "[@]";
            Pattern p = Pattern.compile(regEx);
            Matcher m = p.matcher(orgStr);
            return m.replaceAll("");
        }
        return "";
    }
评论(0) 最佳答案
woner163的gravatar头像
woner163 2016年11月27日

3.

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友