繁体   English   中英

在没有逗号的 java 方法中返回 String[] 数组

[英]returning String[ ] array in java method without commas

我正在解决TopCoder中的一个问题,我需要编写一个必须返回String[] 这是我的方法,它的工作没有任何错误:

    public static String[] decode(String encoded)
{
    char[] test = encoded.toCharArray();
    int[] decode_arr = new int[test.length];
    String[] result = new String[2];
    boolean flag= false;
    for(int i=0;i<2;i++)
    {
        flag = false;
        decode_arr[0] = i;
        decode_arr[1] = Character.getNumericValue(test[0])-decode_arr[0];

        for(int x=2;x<test.length;x++)
        {
            decode_arr[x] = Character.getNumericValue(test[x-1]) - decode_arr[x-2]-decode_arr[x-1];
            if(decode_arr[x]>1 || decode_arr[x]<0)
                flag=true;
        }
        if(!flag)
            result[i] = Arrays.toString(decode_arr);
        else
            result[i] = "NONE";

        //System.out.println(Arrays.toString(decode_arr));
        decode_arr = null;
        decode_arr = new int[test.length];
    }

    return result;

}

现在的问题是编译器期望没有逗号的值,例如,如果输出是:

"01101001101101001101001001001101001", "10110010110110010110010010010110010"

我得到的是:

[0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0 , 0, 1, 1, 0, 1, 0, 0, 1] [1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0 , 1, 0, 1, 1, 0, 0, 1, 0]

我是否遗漏了任何常见的调整,还是我应该修剪输出并按照它应该的方式提交? 请帮助!

这就是Arrays.toString()所做的。 以与列表相同的方式清楚地显示值组。 的情况下:

int[] array = {11, 2}; // printed as "112" afterwards

..您无法清楚地看到它是[11, 2][1, 12]或仅[112]的数组。

但是,如果您需要这种输出,请尝试用空字符替换所有不需要的字符:

String out = Arrays.toString(array).replace(", ", "").replace("[", "").replace("]", "");

如果将[]字符作为某些值,我建议您更好地采用这种安全方式:

String arrayAsString = Arrays.toString(array);
String out = arrayAsString.substring(1,arrayAsString.length()-1).replace(", ","");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM