繁体   English   中英

从一串整数中减去整数

[英]subtract integer from a string of integers

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

   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 来进行“数学运算”,但这是一种非常疯狂的情况。

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

这使得

for (int i = 0; i < strn.length; i++)
    strn[i] := String.valueOf(Integer.parseInt(strn[i]) - 1);
}
for (int i = 0; i < str.length; i++)
    str[i] := String.valueOf(Integer.parseInt(str[i]) - 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;
}

您可以使用org.apache.commons.lang3.math库以优雅的方式解决它。

for(int i = 0; i < str.length; i++) {
  str[i] = NumberUtils.toInt(str[i]) - 1;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM