简单java,字符串长度

简单java,字符串长度,java,string,oop,inheritance,interface,Java,String,Oop,Inheritance,Interface,我发现很难将字符串长度返回为“*”符号。方法NodeDisclosure位于接口中,TopClearing是Clearing的子类。此外,gettermethod getSecret()位于超类-->Clearing中,因此我已经继承了它 我知道返回字符串时使用Str.length(),但我不知道如何获取长度并将其转换为“*” 这是问题的一部分 TopClearance中的方法noDisclosure将返回符号“*”的序列,长度与Clearance中的秘密相同。 因此,如果例如top是TopCl

我发现很难将字符串长度返回为“*”符号。方法NodeDisclosure位于接口中,TopClearing是Clearing的子类。此外,gettermethod getSecret()位于超类-->Clearing中,因此我已经继承了它

我知道返回字符串时使用Str.length(),但我不知道如何获取长度并将其转换为“*”

这是问题的一部分

TopClearance中的方法noDisclosure将返回符号“*”的序列,长度与Clearance中的秘密相同。 因此,如果例如top是TopClearance实例的名称,top.getSecret()是“magic”,那么 noDisclosure()将返回“****”,因为“magic”的长度为5。 TopClearance中的方法passport将返回Clearance中名称的前两个字符。 因此,如果例如top是TopClearance实例的名称,top.getName()是“Mark”,那么
top.passport()将返回“Ma”。

您可以为
noDisclosure
创建for循环以屏蔽单词:

String maskedWord = "";
for(int i = 0; i < word.length(); i++) {
    maskedWord += "*";
}

您可以使用已知字长创建新字符串:

String maskedWord = new String(new char[word.length()]).replace("\0", "*");

您可以使用String.replaceAll()方法,该方法使用正则表达式,其中。表示任何字符:

text.replaceAll(".", "*");

它完成了任务(也许是最符合逻辑的),但你不会想这样做。同样,如果你想这样做,那么至少使用StringBuilder而不是StringConcat。我不知道他们对字符串的使用有多深入,所以我想我会提供一个更简单的解决方案,让其他人也提供其他想法。我在编程方面不是很先进,所以我认为这种方法是合乎逻辑的。谢谢你,伙计!
text.replaceAll(".", "*");