如何让我的 toString 方法仅返回字符串的某些部分,例如,我有一个带有构造函数的名称和姓氏变量。我想使用 toString 方法,以便它只返回每个名称的第一个字母,其余部分用占位符填充,例如“-”
enter code here
private String foreame = null;
private String surname = null;
public FullName(String forename, String surname)
{
this.forename = forename;
this.surname = surname;
}
这样我就可以为 James Roy 这个名字得到类似“J---- R--”的输出
最佳答案
在类中,重写 toString 方法:
@Override
public String toString() {
return forename.replaceAll("\\B\\w", "-")) + " " + surname.replaceAll("\\B\\w", "-"));
}
或者,更简洁地说:
@Override
public String toString() {
return (forename + " " + surname).replaceAll("\\B\\w", "-");
}
replaceAll 将用标记“-”替换字符串中除第一个字符以外的所有字符,从而实现您想要的结果。
Here's a very helpful link for working with Regex.请注意,因为 java 使用 '\' 作为转义标记,所以您需要使用两个,如图所示。
关于Java toString() 隐藏信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47851323/