【问题标题】:Java String to one type of characterJava字符串到一种类型的字符
【发布时间】:2012-05-02 22:40:53
【问题描述】:

是否可以用一种类型的字符替换整个字符串?有没有一种方法可以做到这一点?当然是一行。

Example:

"1234567890" turns to "xxxxxxxxxx"

【问题讨论】:

    标签: java string character


    【解决方案1】:

    你可以使用replaceAll:

    String newString = origString.replaceAll(".", "x");
    

    例如,这个:

    System.out.println("hello".replaceAll(".", "*"));
    

    输出:

    *****
    

    【讨论】:

    • 不。第一个参数是一个正则表达式,点是几乎所有东西的通配符......试试看。
    • @Lion - 我为什么要逃避它?我想用 X 替换每个字母
    • 您在等待最佳答案吗?这样更好!
    【解决方案2】:

    replaceAll 更轻量级的解决方案:

    char[] chars = new char[origString.length()];
    Arrays.fill(chars,'x');
    String newString = new String(chars);
    

    哦,对不起,你想要一行:

    char[] chars = new char[origString.length()]; Arrays.fill(chars,'x'); String newString = new String(chars);
    

    【讨论】:

      【解决方案3】:

      是否可以用一种类型的字符替换整个字符串?

      不,Stringimmutable,因此无法更改 1,因此您不能将“1234567890”转换为 “xxxxxxxxx”

      您可以创建一个新的String 对象,按照@BinyaminSharet 的建议将其替换


      (1) 从技术上讲,可以使用 reflection 更改不可变对象 - 但应不惜一切代价避免。

      【讨论】:

      • 我想你在技术上是正确的(哈哈,技术性),但另一个答案帮助了我更多。
      • 哈哈 +1 精度,即使它很可能不是 OP 的意思!
      • @user1102901:不过,应该强调一下。我链接到 BinyaminSharet 的答案,因为我会使用他的解决方案来创建新对象,为此 - 我认为他的答案很棒,我没有什么可补充的。
      猜你喜欢
      • 2023-03-04
      • 2012-08-24
      • 2015-09-17
      • 2013-01-07
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      相关资源
      最近更新 更多