Java toString() 隐藏信息

标签 java

如何让我的 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/

相关文章:

java - 服务器启动时自动清理

java - 没有找到测试

Java字符串解析和通过MIDI合成器播放错误

java - Android room SELECT * WHERE 返回所有记录

java - 仅匹配字符串 REGEX 中的字母字符

java - 在 Java 上的 JForm 中滑动 JPanel 内容

Spring 中的 Java Spring hibernate 和 JPA

java - 如果我们在 hibernate 状态下开始事务但不提交会发生什么?

java - 将具有多个结构的 C 头文件转换为 Java

java - Java 中的默认线程