好的,我有一个读取整数的文件,文件格式如下:123456-1324563
。
该文件将这些数字读取为字符串,我正在尝试创建一种方法,该方法将数字读取到较少一侧的任何一侧附加数字0
。
例如,如果运算符左侧的数字比右侧的数字少,则会向字符串添加0,以使两个数字变得相等,并返回新的字符串。因此,我需要该方法将类似于123456789-123456
的字符串转换为123456789-000123456
。但它仍需要确定哪一侧更短,然后在其前面填充0,但仍返回整个字符串。
编辑:
这是我最新的版本的此方法,我使用时传递+
运算符时出现ArrayIndexOutOfBoundsException
,但使用-
运算符时完美无误。
public String pad(String line, String operator){
String str[] = line.split(Pattern.quote(operator));
StringBuilder left = new StringBuilder(str[0]);
StringBuilder right = new StringBuilder(str[1]);
left = left.reverse();
right = right.reverse();
int len1 = left.length();
int len2 = right.length();
if(len1>len2){
while(len1!=len2){
right.append("0");
len1--;
}
}else{
while(len1!=len2){
left.append("0");
len2--;
}
}
return left.reverse().toString()+operator+right.reverse().toString();
}
pad("123456789-123456", "+");
,它会抛出index out of bounds exception
异常,但正确的调用应该是pad("123456789+123456", "+");
。你在行中传递了带有-
的字符串,在操作符中传递了+
。 - ashiquzzaman33