5

我正在尝试从点(a,b)中获取字符串的一部分,并将字符串中给定值的字母替换为“X”。

示例:如果字符串 isABC123并且switch(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是不可变的,不能更改。但是,您可以编写一个方法来返回 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);
    }

}
于 2012-11-05T17:15:46.167 回答
0

只需为左侧和右侧部分(您要保留)执行两个子字符串,然后将它们与适当数量的 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 回答