我试图从点(a,b)获取一部分字符串,并将字符串中给定值的字母替换为'X'。
示例:如果字符串为ABC123
且switch(3,5)
被调用,则会将其更改为ABCXXX
。
到目前为止,我有:
public void switch(int p1, int p2)
{
String substring = myCode.substring(p1,p2-1);
}
我很失落....感谢您的帮助!
答案 0 :(得分:1)
使用StringBuilder
及其replace(int start, int end, String str)
方法
答案 1 :(得分:1)
Java String
是不可变的,无法更改。但是,您可以编写一个返回new String
的方法,并将这些字符标记为out。 StringBuilder
是一个很好的类,可以让自己熟悉,因为它允许快速的字符串操作。
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);
}
}
答案 2 :(得分:0)
只需为左手和右手部分(你想要保留)做两个子串,然后在它们之间连接适当数量的X.
答案 3 :(得分:-1)
试试这个:
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));
}
}
答案 4 :(得分:-1)
可能会有所帮助的几个步骤:
str.substring(0,p1);
)str.substring(p2,str.length());
)String output = firstPart + addedChars + secondPart;
)