从整数字符串中减去整数

时间:2013-05-17 11:47:47

标签: java arrays string

假设我有一个字符串数组,如下所示:

   String[] str = {"2","4","5"};

现在我想从每个元素中减去1,即我希望字符串现在是这样的:

    str = {"1","3","4"};

我该怎么办?除了将其转换为整数数组之外,还有其他方法吗?

8 个答案:

答案 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)

  1. 将字符串转换为int:int foo = Integer.parseInt("1234");
  2. 从中减去1
  3. 转换回字符串Integer.toString(i)
  4. 这样做

    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;
}