代码之家  ›  专栏  ›  技术社区  ›  Zealot

在JAVA中,根据数字位置从字母字符串中删除单个字符[重复]

  •  -3
  • Zealot  · 技术社区  · 6 年前

    为了给标题提供一些上下文,假设我有一个int数组。例如(1,2,3,4,5)。
    数组中的每个数字表示字符串中的一个字符。因此,如果字符串是hello,那么数组[3]将表示“l”。
    从字符串中删除字符、替换字符然后将其添加回字符串中的最有效或最简单的方法是什么?
    因此,使用上面的示例,我可以将“l”更改为“d”,将其添加回字符串,这样我的最后一个字符串就是“hedlo”。

    以下是我的部分代码:

    用于最大值的方法:

     public static int getMax(int[] inputArray){ 
        int maxValue = inputArray[0]; 
        for(int i=1;i < inputArray.length;i++){ 
          if(inputArray[i] > maxValue){ 
             maxValue = inputArray[i]; 
          } 
         } 
        return maxValue; 
        }
    

    下面是使用数组中的最大值作为要编辑的字符串结果中的位置的代码。在实际情况下,要编辑的字符应替换为“m”

     int max = getMax(array);
        results.setCharAt(max, 'm');
        String result = results.toString();
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   IX33U    6 年前

    是的,这很容易做到。下面我有一些来自 https://stackoverflow.com/a/4576556/9354346

    StringBuilder str = new StringBuilder("hello");
    str.setCharAt(2, 'd');
    String result = str.toString();
    
        2
  •  0
  •   algrice    6 年前

    我不知道你为什么要这样做,我不确定到底该推荐什么,但这里有一些东西需要考虑。ASCII字符具有与其关联的数值。 Table.

    如果将int转换为char,它会将其转换为该值。就像这样,

    char c = (char) 97; 
    

    将计算为“a”。如果您希望“a”从1开始,您可以在所有项中添加96。

    要进行转换,可以将表中的差异添加到int中。因此,从“a”到“d”,添加3。

    编辑:

    我回答这个问题时假设您正在更改表示字符串的int数组。重读这个问题,我不确定你在做什么!如果需要将字符串中的一个字符更改为其他字符,可以使用substring函数获取更改前的字符,以及更改后的字符,并将新字符在中间。

    String x = "Hello";
    x = x.substring(0,2) + 'd' + x.substring(3);
    

    这让x说“Hedlo”