用“*”替换最后4个字符

时间:2011-12-17 10:56:56

标签: java string

我有一个字符串,我需要用“*”符号替换字符串的最后4个字符。任何人都可以告诉我该怎么做。

7 个答案:

答案 0 :(得分:9)

快速简便的方法......

public static String replaceLastFour(String s) {
    int length = s.length();
    //Check whether or not the string contains at least four characters; if not, this method is useless
    if (length < 4) return "Error: The provided string is not greater than four characters long.";
    return s.substring(0, length - 4) + "****";
}

现在你所要做的就是用一个字符串作为参数调用replaceLastFour(String s),如下所示:

public class Test {
    public static void main(String[] args) {
        replaceLastFour("hi");
        //"Error: The provided string is not greater than four characters long."
        replaceLastFour("Welcome to StackOverflow!");
        //"Welcome to StackOverf****"
    }

    public static String replaceLastFour(String s) {
        int length = s.length();
        if (length < 4) return "Error: The provided string is not greater than four characters long.";
        return s.substring(0, length - 4) + "****";
    }
}

答案 1 :(得分:3)

也许一个例子会有所帮助:

String hello = "Hello, World!";
hello = hello.substring(0, hello.length() - 4);
// hello == "Hello, Wo"
hello = hello + "****";
// hello == "Hello, Wo****"

答案 2 :(得分:3)

public class Model {
    public static void main(String[] args) {
        String s="Hello world"; 
        System.out.println(s.substring(0, s.length()-4)+"****");
    }
}

答案 3 :(得分:3)

最简单的方法是使用正则表达式:

String s = "abcdefg"
s = s.replaceFirst(".{4}$", "****"); => "abc****"

答案 4 :(得分:1)

您可以使用子字符串。

String str = "mystring";
str = str.substring(0,str.length()-4);
str = str + "****";

所以substring有两个参数。

substring(beginIndex, endIndex);

因此,如果在字符串中调用substring方法,它会创建一个以beginIndex(包含)和endIndex(独占)开头的新String。例如:

String str = "roller";
str = str.substring(0,4);
System.out.Println("str");

OUTPUT :

roll

所以它从beginIndex开始直到endIndex - 1。

如果您想了解有关子字符串的更多信息,请访问http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html

希望这有帮助。

答案 5 :(得分:0)

这是我只保留前三个原始字符的解决方案

 /**
 * @param s
 * @return first 3 Characters of s, filled up with * to the Length of s, or s if shorter than 4 Char
 */
static String replaceLastChars(String s) {
    if (StringUtils.isBlank(s) || s.length() < 4) {
        return s;
    }
    return StringUtils.rightPad(s.substring(0, 3), s.length(), '*');
}

以及相应的TestCase

@Test
public void testReplace() {
    assertThat(replaceLastChars(null)).isNull();
    assertThat(replaceLastChars("")).isEqualTo("");
    assertThat(replaceLastChars("abc")).isEqualTo("abc");
    assertThat(replaceLastChars("abcdfg")).isEqualTo("abc***");
}

答案 6 :(得分:0)

使用Javascript slice可以像slice ...那样轻松解决您的问题。


var str =“ 12345678”; console.log(str.slice(0,-4)+“ XXXX”);