Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用索引循环根据位置替换字符_Java_Indexof - Fatal编程技术网

Java 如何使用索引循环根据位置替换字符

Java 如何使用索引循环根据位置替换字符,java,indexof,Java,Indexof,给出了查找字符位置的代码。。。现在的问题是,它是一个循环,搜索整个字符串并返回每个位置。。。现在,在这段代码中使用了一个示例“pool”。所以它返回1和2 String s = "Pool"; int idx = s.indexOf('o'); while (idx > -1) { System.out.println(idx); idx = s.indexOf('o', idx + 1); } 是否有方法使用方法中返回的两个位置并替换字符。。。例如,如果我想用“hh”替换“o”,导致“

给出了查找字符位置的代码。。。现在的问题是,它是一个循环,搜索整个字符串并返回每个位置。。。现在,在这段代码中使用了一个示例“pool”。所以它返回1和2

String s = "Pool";
int idx = s.indexOf('o');
while (idx > -1) {
System.out.println(idx);
idx = s.indexOf('o', idx + 1);
}

是否有方法使用方法中返回的两个位置并替换字符。。。例如,如果我想用“hh”替换“o”,导致“phhl”

您可能需要检查
字符串中的方法

例如,使用您的代码,您可以执行以下操作:

String s = "pool";
System.out.println(s.replaceAll("o", "h"));

我会推荐@Sujay的解决方案,但以防这不符合您的要求

int counter = 0;
String input = "Pool";
char replacement = 'l';
char[] inputArray = input.toCharArray();
for(char ch : inputArray) {
    if(ch == 'o') {
        inputArray[counter] = replacement;
    }
    counter += 1;
}
String output = new String(inputArray);
System.out.println(output);

如果您将“pool”中的“o”替换为“hh”,您将得到“phhhl”我不想替换“o”我想替换位置1和2我不想根据char替换,我想根据位置替换“i想替换“o”给人的印象是您想替换o@苏杰的解决方案会给你想要的。“pool”。replaceAll(“o”、“h”)将给出您期望的“phhl”