5

私はpoint(a、b)から文字列の一部を取得し、文字列内の指定された値の文字を「X」に置き換えようとしています。

例:文字列がで呼び出された場合、文字列はABC123switch(3,5)変更されABCXXXます。

これまでのところ:

  public void switch(int p1, int p2)
{
   String substring = myCode.substring(p1,p2-1);
}

私はとても迷っています....助けてくれてありがとう!

4

5 に答える 5

1

使用StringBuilderとそのreplace(int start, int end, String str)方法

于 2012-11-05T17:06:27.870 に答える
1

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);
    }

}
于 2012-11-05T17:15:46.167 に答える
0

左側と右側の部分(保持したい部分)に対して2つの部分文字列を作成し、それらを適切な数のXで連結します。

于 2012-11-05T16:44:31.967 に答える
-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));
    }

}
于 2012-11-05T17:02:15.313 に答える
-1

役立つ可能性のあるいくつかの手順:

  1. 変更する必要のある文字数を特定する
  2. 保持する文字列の左側を特定します(str.substring(0,p1);
  3. 保持する文字列の右側を特定します(str.substring(p2,str.length());
  4. それらをまとめる(String output = firstPart + addedChars + secondPart;
于 2012-11-05T17:04:53.240 に答える