Android:将数组填充到一定长度
形势 我有不同的char[]数组,包含不同数量的项。为了避免在处理它们时出现“边界外”错误,我想对它们进行标准化。 例如: 我的数组有以下项目:“5;9”->我希望它看起来像什么:“0,0,0,0,5,9”(用“0”填充到6个项目) 我的尝试:Android:将数组填充到一定长度,android,indexoutofboundsexception,arrays,Android,Indexoutofboundsexception,Arrays,形势 我有不同的char[]数组,包含不同数量的项。为了避免在处理它们时出现“边界外”错误,我想对它们进行标准化。 例如: 我的数组有以下项目:“5;9”->我希望它看起来像什么:“0,0,0,0,5,9”(用“0”填充到6个项目) 我的尝试: char[] myarray1 = mystring1.toCharArray(); ... for(int i=0; i<6; i++){ myarray1[i] = 0; if(i<myarray1.len
char[] myarray1 = mystring1.toCharArray();
...
for(int i=0; i<6; i++){
myarray1[i] = 0;
if(i<myarray1.length-1){
myarray1[i] = myarray1[i];
}else{
myarray1[i] = 0;
};
};
char[]myarray1=mystring1.toCharArray();
...
对于(int i=0;i,首先尝试填充0不会修复错误。
其次,您的逻辑不正确(假设大小为6),请将其更改为myString.length()
。
我不明白myarray1[I]=myarray1[I];
的意义
不管怎么说,每个整数大小的数组都是根据0初始化的。另一方面,如果您想用任何其他值填充它,请尝试。解决方案不起作用的原因是您对所有内容都使用相同的数组。
在char[]myarray1=mystring1.toCharArray();
myarray1
的长度是2,因此不能简单地在循环中分配条目2、3、4和5。此外,如果希望字符串中包含字符“0”,则需要用撇号将零括起来
您可以这样修复解决方案:
char[] myNewArray = new char[6];
int myarrayIndex = 0;
for(int i=0; i<6; i++)
{
if(i < (myNewArray.length - myarray1.length)) {
myNewArray[i] = '0';
} else {
myNewArray[i] = myarray1[myarrayIndex++];
};
};
System.out.println(myNewArray); //Will print out: 000059
我认为这个函数将完成您想要做的事情
private static String formatString(String input)
{
String FORMATTED_STRING = "0,0,0,0,0,0";
int difference = FORMATTED_STRING.length() - input.length();
return FORMATTED_STRING.substring(0, difference) + input;
}
你只处理数字吗?如果是的话,为什么要处理字符串?你是将字符串作为输入,只需匹配格式就可以生成六个字符的输出吗?谢谢!第二种解决方案非常有效,非常简单:)我没有想到字符串。格式。。。无论如何,谢谢!
private static String formatString(String input)
{
String FORMATTED_STRING = "0,0,0,0,0,0";
int difference = FORMATTED_STRING.length() - input.length();
return FORMATTED_STRING.substring(0, difference) + input;
}