我正在尝试从点(a,b)中获取字符串的一部分,并将字符串中给定值的字母替换为“X”。
示例:如果字符串 isABC123
并且switch(3,5)
被调用,它会将其更改为ABCXXX
.
到目前为止,我有:
public void switch(int p1, int p2)
{
String substring = myCode.substring(p1,p2-1);
}
我很迷茫....感谢您的帮助!
用途StringBuilder
及其replace(int start, int end, String str)
方法
JavaString
是不可变的,不能更改。但是,您可以编写一个方法来返回 anew String
并标记出这些字符。AStringBuilder
是一个让您熟悉的好类,因为它允许快速字符串操作。
StringBuilder 文档:http ://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html
public class StringReplace {
public static String replaceRange(String s, int start, int end){
StringBuilder b = new StringBuilder(s);
for(int i = start; i <= end; i++)
b.setCharAt(i, 'x');
return b.toString();
}
public static void main(String[] args){
String test = "mystringtoreplace";
String replaced = replaceRange(test, 3, 8);
System.out.println(replaced);
}
}
只需为左侧和右侧部分(您要保留)执行两个子字符串,然后将它们与适当数量的 X 连接起来。
尝试这个:
public class Sub {
public String replaceChar(String str, int x, int y){
String temp = "XXX";
String str1 = "";
str1 = str.substring(x, y+1);
str = str.replace(str1, temp);
return str;
}
public static void main(String args[]){
Sub s = new Sub();
System.out.println(s.replaceChar("ABC123", 3, 5));
}
}
一些可能有帮助的步骤:
str.substring(0,p1);
)str.substring(p2,str.length());
)String output = firstPart + addedChars + secondPart;
)