Java 如何在不使用replace方法的情况下替换用户输入的字符串中的字符?
程序要求用户输入一个短语,然后询问要替换的字符以及替换的内容。我可以使用的唯一字符串方法是length、concat、+、charAt、substring和equals(或equalsIgnoreCase)。Java 如何在不使用replace方法的情况下替换用户输入的字符串中的字符?,java,Java,程序要求用户输入一个短语,然后询问要替换的字符以及替换的内容。我可以使用的唯一字符串方法是length、concat、+、charAt、substring和equals(或equalsIgnoreCase)。 我很迷茫。好吧,假设str是输入的字符串,c是需要替换的字符。这应该是一些有效的代码: for (int i = 0; i < str.length; i++) { if (str.charAt(i) == c) { if (i+1 <= str.length) s
我很迷茫。好吧,假设str是输入的字符串,c是需要替换的字符。这应该是一些有效的代码:
for (int i = 0; i < str.length; i++) {
if (str.charAt(i) == c) {
if (i+1 <= str.length) str = str.substring(0, i-1) + str.substring(i+1, str.length);
if (i+1 > str.length) str = str.substring(0, i-1);
}
}
for(int i=0;i
您的答案现在保存在str值中。只需使用
String::charAt
和串联运算符+
公共静态字符串替换(字符串str、字符old、字符替换){
if(null==str | | str.isEmpty()){
返回str;
}
字符串“”替换;
对于(int i=0,n=str.length();i
更新 下面显示了使用
子字符串
、字符
和串联+
的递归解决方案。如果输入字符串中旧
字符相对较少,则可以使用较少的连接和创建新字符串实例
publicstaticstringreplace(stringstr、charold、charchange){
if(null==str | | str.isEmpty()){
返回str;
}
int pos=0;
int n=str.length();
而(pos
С您使用StringBuilder吗
String str = "something o";
StringBuilder sb = new StringBuilder(str);
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == 'o') {
sb.setCharAt(i, '.');
}
}
System.out.println(sb);
String str=“something o”;
StringBuilder sb=新的StringBuilder(str);
对于(int i=0;i
如何在不使用replace方法的情况下替换用户输入的字符串中的字符
这非常简单,只需在字符处通过子字符串拆分字符串并插入替换项即可。同一字符的上部和下部视为不同的字符
SString test = "s - characters start, within, and end of string - s";
test = replace(test, 's','x');
System.out.println(test);
印刷品
x - characterx xtart, within, and end of xtring - x
方法
public static String replace(String s, char target, char replacement) {
Objects.requireNonNull(s);
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == target) {
s = s.substring(0,i) + replacement + s.substring(i+1);
}
}
return s;
}
公共静态字符串替换(字符串s、字符目标、字符替换){
对象。要求不完整;
对于(int i=0;i
以空输出字符串开始。然后逐个字符检查源字符串(使用length()
和charAt()
)。对于每个字符,将字符或其替换项连接到输出字符串。您忘记将替换字符添加到结果中代码将无法编译,因为string.length()
是一种方法。很遗憾,我不能使用StringBuilder或数组