Java 如何替换数组中字符串索引的值

Java 如何替换数组中字符串索引的值,java,arrays,for-loop,split,Java,Arrays,For Loop,Split,我正在做一个关于图灵机器的项目,我遇到了一个问题,关于如何替换字符串某个索引中的字符 示例:如果我在初始磁带中输入: 栈溢出 然后在输入区域中编码,如 写1 输出应该是 1堆栈溢出 但遗憾的是,我的代码的输出是 11111111111 我试图摆脱循环,因为我知道我的循环是个问题,但我应该怎么做呢 这是我的密码 runButton.addActionListener(新ActionListener(){ 已执行的公共无效行动(行动事件行动){ String[]iniTape=iTapeArea.g

我正在做一个关于图灵机器的项目,我遇到了一个问题,关于如何替换字符串某个索引中的字符

示例:如果我在初始磁带中输入: 栈溢出 然后在输入区域中编码,如 写1 输出应该是 1堆栈溢出 但遗憾的是,我的代码的输出是 11111111111

我试图摆脱循环,因为我知道我的循环是个问题,但我应该怎么做呢

这是我的密码

runButton.addActionListener(新ActionListener(){ 已执行的公共无效行动(行动事件行动){

String[]iniTape=iTapeArea.getText().split(“”);
字符串[]输入=inputArea.getText().split(“\n”);

对于(int i=0;i无需尝试此方法。您可以使用

 String str = "stackoverflow";
 System.out.println(str.replace("" + str.charAt(0), "1"));
输出:

 1tackoverflow
使用String类的replaceAll()方法,如下所示

yourString.replaceAll("" + yourString.charAt(index), "1")//index is your index at which you want to replace

“”+相当于执行
String.valueOf(yourString.charAt(index))

这可能会奏效

String[]iniTape=iTapeArea.getText().split(“”);
字符串sub=null;
字符串temp=null;
字符串[]输入=inputArea.getText().split(“\n”);
//“测试1\n测试2\n测试3”。拆分(“\n”);
对于(inti=0;i我使用String类的replaceFirst(String,String)函数

public static void main(String[] args) {
    String s = "stackoverflow";
    s = s.replaceFirst("" + s.charAt(0), "1");
    System.out.println(s);
}

如果要用该数字替换字符串的给定特定索引,可以执行以下操作

static String str = "stackoverflow";
public static String replaceCharsAt(int ... indices) {
    for (int index : indicies) {
        str = str.replace(str.charAt(i), i+1);
    }
    return str;
}

是的,先生,它可以很简单,但例如,如果我写1写2写3,输出应该是123ckoverflow@marky您是这样输入的?“写入1写入2写入3”或“12写入3”???
public static void main(String[] args) {
    String s = "stackoverflow";
    s = s.replaceFirst("" + s.charAt(0), "1");
    System.out.println(s);
}
static String str = "stackoverflow";
public static String replaceCharsAt(int ... indices) {
    for (int index : indicies) {
        str = str.replace(str.charAt(i), i+1);
    }
    return str;
}