私はpoint(a、b)から文字列の一部を取得し、文字列内の指定された値の文字を「X」に置き換えようとしています。
例:文字列がで呼び出された場合、文字列はABC123
に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
は不変であり、変更できません。new 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);
}
}
左側と右側の部分(保持したい部分)に対して2つの部分文字列を作成し、それらを適切な数の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;
)