如何使用参数屏蔽除 Java 中最后 4 个字符之外的所有字符串字符?

2023-11-23

我想知道如何屏蔽除最后 4 个字符串之外的任意数量的字符串字符。 我想使用“X”屏蔽所有字符串

例如

Number:"S1234567B"

Result

Number :"XXXXX567B

感谢你们


解决方案1

您可以使用正则表达式来完成。
这是shortest解决方案。

static String mask(String input) {
    return input.replaceAll(".(?=.{4})", "X");
}

正则表达式匹配任何单个字符 (.) 接下来是 (零宽度正前瞻) 至少 4 个字符 ((?=.{4}))。将每个这样的单个字符替换为X.


解决方案2

You can do it by getting a char[]1, updating it, and building a new string.
This is the fastest solution, and uses the least amount of memory.

static String mask(String input) {
    if (input.length() <= 4)
        return input; // Nothing to mask
    char[] buf = input.toCharArray();
    Arrays.fill(buf, 0, buf.length - 4, 'X');
    return new String(buf);
}

1) Better than using a StringBuilder.


解决方案3

您可以使用repeat​(int count)添加到的方法String在Java 11中。
这很可能是easiest解来理解。

static String mask(String input) {
    int maskLen = input.length() - 4;
    if (maskLen <= 0)
        return input; // Nothing to mask
    return "X".repeat(maskLen) + input.substring(maskLen);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用参数屏蔽除 Java 中最后 4 个字符之外的所有字符串字符? 的相关文章

随机推荐

  • 为什么我的 sqlite3 外键不起作用?

    我从 python 解释器运行以下代码 并期望插入语句失败并抛出某种异常 但它没有发生 Python 2 6 5 r265 79096 Mar 19 2010 21 48 26 MSC v 1500 32 bit Intel on win3
  • Google 是否推送了会破坏多个帐户的 OAuth2.0 流程更新?

    直到上周 当我登录 Google 中的多个帐户并调用 OAuth2 0 流程时 我都会看到一个功能正常的丑陋屏幕 看起来像是被丑陋的棍子反复击打 它将显示一个单选按钮列表 其中包含我登录的所有帐户 您选择一个并继续完成流程 这周我现在得到了
  • 使用 -fshort-wchar 的含义

    在 Mac OS X 系统上查看文件 wchar h 时 我发现当未定义 cplusplust 且 wchar t 的最大大小为 2 个字节 通过使用编译器选项 fshort 时 wchar t 相当于 str 函数 例如 wcscpy w
  • 无法膨胀 ConstraintLayout

    每次我的应用程序崩溃时 因为它在类路径中找不到 Landroidx constraintlayout widget R styleable 我尝试重建 使缓存无效 但它总是在运行时给我同样的错误 我尝试了 1 1 2 和 1 1 3 两个版
  • pandas 时间序列的线性回归

    我有一个数据框对象 其中包含 EUR USD 货币对的 1 秒间隔 但理论上它可以是任何间隔 在这种情况下它可能如下所示 2015 11 10 01 00 00 01 00 1 07616 2015 11 10 01 01 00 01 00
  • mat-form-field 必须包含 MatFormFieldControl

    我们正在尝试在我们公司构建我们自己的表单字段组件 我们正在尝试像这样包装材料设计的组件 field
  • 使用数组进行 DocumentDB 查询

    我有带有简单 字符串 数组属性的文档 id one tags A B id two tags A C 要检查值是否是数组的一部分 我可以使用 ARRAY CONTAINS SELECT FROM c WHERE ARRAY CONTAINS
  • 在 Rake 任务中使用环境变量

    task some task environment do t args puts Rails env gt development production etc puts ENV gt end 我设置了一些环境变量 通过本地 env 或通
  • 删除后如何访问 Kubernetes 中 Pod 的日志

    我们拥有基于 CentOS 的 kubernetes 基础设施 并在此基础上使用 Openshift 我们已经终止了一个 Pod 现在它在主控制器上不再可见 但是我们愿意分析它的日志 我们还能访问它的日志吗 如何 当您发出命令时 容器及其日
  • 使用 from_json 制作的 MongoEngine 文档对象不保存

    我正在尝试使用 from json 方法构建文档对象 object save 没有抛出错误 但文档没有插入到 mongo 中 另一方面 如果我通过为每个字段分配值来创建对象 它就可以正常工作 我无法找到原因 下面是这两种情况的代码 from
  • Scala 模块 2.12.3 需要 Jackson Databind 版本 >= 2.12.0 且 < 2.13.0,但我有 databind 2.12.3

    对于一个项目 我将 Spark 结构化流与 kafka 结合使用 我有这个配置
  • 沿线性回归线绘制条件密度曲线“P(Y|X)”

    这是我的数据框 有两列Y 回应 和X 协变量 Editor edit use dat not data dat lt structure list Y c NA 1 793 0 642 1 189 0 823 1 715 1 623 0 9
  • 简单的 Python 服务器设置

    我正在尝试学习 python 来自 PHP 并且想要设置最简单的 Web 服务器 以便我可以开始编码 我找到了集成的 HTTP 服务器 所以我认为这应该是最简单的方法 root ubuntu var py python m SimpleHT
  • 核心数据关系(快速)

    我正在构建一个需要核心数据关系的应用程序 如下所示 entityA lt lt gt entityB e g any given entityA can hold many entityB objects 我有两个带有entityA 列表项
  • 在容器中运行服务(upstart/init.d)

    我正在尝试在 docker 中启动一个具有许多 init 和 upstart 服务的系统 但出现此错误 initctl Unable to connect to Upstart Failed to connect to socket com
  • IntelliJ IDEA 没有 Java 10 'var' 的代码完成?

    最近我安装了IntelliJ IDEA的新版本 2018 1 它增加了对Java 10的支持 但是当我尝试使用var 对于局部变量类型推断 我发现没有var在代码完成列表中 见下面的截图 如果我继续输入 它将适用VarHandle作为该列表
  • 如何对变长特征进行一种热编码?

    给定一个变长特征列表 features f1 f2 f3 f2 f4 f5 f6 f1 f2 其中每个样本都有不同数量的特征和特征dtype is str并且已经一热了 为了使用 sklearn 的特征选择实用程序 我必须将features
  • 确保 gem 与 Rails 3.x 和 4.0 兼容的 gem 测试策略?

    我见过一些虚拟 Rails 应用程序的示例 用于测试 因此它们通常处于测试或规范目录下 与 Appraisals gem 一起使用 据说可以与 Rails 3 x 和 Rails 4 一起使用 但它们看起来很黑客且功能不完整 这在某种程度上
  • 如何从wordpress数据库获取产品属性

    编写自定义代码以使用 WordPress 数据库创建产品详细信息页面 我已经显示了产品标题 描述 价格 库存等 并且对产品属性感到困惑 在数据库中 product attributes以序列化方式存储在数据库的wp postmeta表中 而
  • 如何使用参数屏蔽除 Java 中最后 4 个字符之外的所有字符串字符?

    我想知道如何屏蔽除最后 4 个字符串之外的任意数量的字符串字符 我想使用 X 屏蔽所有字符串 例如 Number S1234567B Result Number XXXXX567B 感谢你们 解决方案1 您可以使用正则表达式来完成 这是sh