假设我有一个字符串数组,如下所示:
String[] str = {"2","4","5"};
现在我想从每个元素中减去1,即我希望字符串现在是这样的:
str = {"1","3","4"};
我该怎么办?除了将其转换为整数数组之外,还有其他方法吗?
答案 0 :(得分:2)
您必须将它们转换为整数,但不一定要存储到整数数组中。您可以改为就地:
for(int i = 0; i < str.length; i++) {
str[i] = Integer.toString(Integer.parseInt(str[i]) - 1);
}
然而,这对我来说是一种代码味道。在进行数学运算时,字符串往往不是最佳选择。您可能还希望在内部使用int[]
并在需要时将它们转换为字符串。
答案 1 :(得分:2)
试试这个,
String str[]= {"2","4","5"};
for(int i=0;i<str.length;i++)
{
str[i]=String.valueOf(Integer.parseInt(str[i])-1));
}
答案 2 :(得分:1)
您需要将它们转换为整数。
如果你能做出一些疯狂的约束,你可以把它变得更好,例如...... 只有字符数组中的单个数字整数,严格大于零。然后你可以通过从它们的ASCII值中减去1来进行“数学运算”,但这是一个非常疯狂的情况,甚至有过。
答案 3 :(得分:0)
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);
}
答案 4 :(得分:0)
for (int i = 0; i < str.length; i++)
str[i] := String.valueOf(Integer.parseInt(str[i]) - 1);
}
答案 5 :(得分:0)
希望这会对你有所帮助。
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;
}
答案 6 :(得分:0)
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;
}
答案 7 :(得分:0)
您可以使用org.apache.commons.lang3.math
库以一种优雅的方式解决它。
for(int i = 0; i < str.length; i++) {
str[i] = NumberUtils.toInt(str[i]) - 1;
}