我在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]
我是否遗漏了任何常见的调整,或者我是否应该修改输出并按照预期的方式提交输出?请帮忙!
答案 0 :(得分:0)
这是Arrays.toString()
的作用。显示与List相同的值组。如果:
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(", ","");