我发现很难将字符串长度返回为" *"符号。方法noDisclosure在Interface中,TopClearance是Clearance的子类。另外,gettermethod getSecret()在superClass - > Clearance中,所以我已经继承了它。
我知道返回一个字符串是使用Str.length()但我不知道如何获取长度并将其转换为" *"
以下是问题的一部分。
TopClearance中的noDisclosure方法将返回符号序列' *'只要在清仓的秘密。 因此,例如top是TopClearance实例的名称,top.getSecret()是" magic"然后 top.noDisclosure()将返回" *****"因为"魔术"长度为5。 TopClearance中的方法护照将返回清除中名称的前两个字符。 因此,例如top是TopClearance实例的名称,top.getName()是" Mark"然后 top.passport()将返回" Ma"。
答案 0 :(得分:4)
您可以使用String.replaceAll()方法,该方法使用正则表达式,其中。代表任何角色:
text.replaceAll(".", "*");
答案 1 :(得分:0)
你可以noDisclosure
的for循环来掩盖这个词:
String maskedWord = "";
for(int i = 0; i < word.length(); i++) {
maskedWord += "*";
}
对于passport
,您可以使用substring
方法获取一段名称:
String shortenedName = name.substring(0, 2);
答案 2 :(得分:-1)
您可以使用已知字长创建新字符串:
String maskedWord = new String(new char[word.length()]).replace("\0", "*");