如何使用正则表达式或其他可能的方式更改打印格式

时间:2016-02-12 01:30:38

标签: java

当前输出

a [20],[4,20],[15],
as ,, ,,[16,17],
by , ,[16], , ,

我目前的格式为方括号和不必要的逗号 所以我希望打印下面的格式,我的代码在下面

这是打印上述

的代码

但我想修改上面的代码来格式化它,而不是括号和冒号在每个元素中有多个数字

EXPECTED out put

a  20, 4:20 ,15
as   ,  , 16:17
by   , 16 ,

1 个答案:

答案 0 :(得分:0)

您可以创建自己的类说Log,实现void print(Object)和朋友来过滤掉" []"。然后可以将它用作Log.print(列表)。 或者你可以考虑使用类似的东西:

("" + list).replaceAll("[\\[\\]]","")

您应该将其封装在某种功能中,例如:

public static void main(String[] args) {
    ArrayList<Integer> l = new ArrayList<Integer>();
    l.add(1);
    l.add(2);
    System.out.println("Non formatted: " + l);
    System.out.println(format0("" + l));
    System.out.println(format1("" + l));
    System.out.println(fmt(l)); // Short
}

static String format0(String s) {
    if(s.length() > 2)
        // Remove starting [ and ending ] from s
        return s.substring(1, s.length() - 1);
    return s;
}

static String format1(String s) {
    return s.replaceAll("[\\[\\]]","");
}

static String fmt(Object o) { return format1(o.toString()); }

干杯