假设我有一个字符串数组,如下所示:
String[] str = {"2","4","5"};
现在我想从它的每个元素中减去 1,即我希望字符串现在是这样的:
str = {"1","3","4"};
我该怎么做?除了将其转换为整数数组之外,还有其他方法吗?
您必须将它们转换为整数,但不一定要存储到整数数组中。您可以改为就地进行数学运算:
for(int i = 0; i < str.length; i++) {
str[i] = Integer.toString(Integer.parseInt(str[i]) - 1);
}
但是,这对我来说是一种代码味道。一般来说,在进行数学运算时,字符串往往不是最佳选择。您可能还想在int[]
内部使用并在需要时将它们转换为字符串。
尝试这个,
String str[]= {"2","4","5"};
for(int i=0;i<str.length;i++)
{
str[i]=String.valueOf(Integer.parseInt(str[i])-1));
}
您需要将它们转换为整数。
如果你可以做一些疯狂的限制,你可以让它更好一点,例如......在字符数组中只有一位整数,严格大于零。然后你可以通过从它们的 ASCII 值中减去 1 来做“数学”,但这甚至是一个非常疯狂的情况。
希望这会帮助你。
public String[] stringCal(String[] ele,int numbr){
String[] sCalulated = new String[ele.length];
for(int i = 0; i < ele.length ; i ++){
sCalulated[i] = String.valueOf(Integer.parseInt(ele[i])-numbr);
}
return sCalulated;
}
public static void main(String[] args) throws IOException {
String str[] = subtractOn(new String[]{"2","4","5"});
for(int k=0;k<str.length;k++){
System.out.println("Integer is :" +str[k]);
}
}
public static String[] subtractOn(String str[]){
int intArray[] = new int[str.length];
String stres[] = new String[str.length];
for(int i=0;i<str.length;i++){
intArray[i] = Integer.parseInt(str[i]);
}
for(int j=0;j<intArray.length;j++){
stres[j] = String.valueOf(intArray[j]-1);
}
return stres;
}
for (int i = 0; i < str.length; i++)
str[i] := String.valueOf(Integer.parseInt(str[i]) - 1);
}
int foo = Integer.parseInt("1234");
Integer.toString(i)
这使得
for (int i = 0; i < strn.length; i++)
strn[i] := String.valueOf(Integer.parseInt(strn[i]) - 1);
}
您可以使用org.apache.commons.lang3.math
库以优雅的方式解决它。
for(int i = 0; i < str.length; i++) {
str[i] = NumberUtils.toInt(str[i]) - 1;
}