Java用特定字符更改字符串的一部分

时间:2012-11-05 16:37:46

标签: java string methods replace substring

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

示例:如果字符串为ABC123switch(3,5)被调用,则会将其更改为ABCXXX

到目前为止,我有:

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

我很失落....感谢您的帮助!

5 个答案:

答案 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)

可能会有所帮助的几个步骤:

  1. 确定需要更改的字符数
  2. 确定您要保留的字符串的左侧(str.substring(0,p1);
  3. 确定您要保留的字符串的右侧(str.substring(p2,str.length());
  4. 将它们放在一起(String output = firstPart + addedChars + secondPart;