【问题标题】:can't replace a char for a "null" within a string using StringBuilder无法使用 StringBuilder 替换字符串中的“null”字符
【发布时间】:2020-05-16 16:09:52
【问题描述】:

我试图使用 StringBuilder 将我在“x”索引处的字符替换为“null”。所以,假设我对“我的”的输入是“”,但我想替换“null”的索引 2(),所以我会得到输出“”。问题是,显然我不能离开 sb.setCharAt(2, ''); 的第二个参数;作为'',因为我收到一条错误消息,所以我想知道我可以做些什么来获得所需的输出

Scanner sc = new Scanner(System.in);

String mine = sc.next();

StringBuilder sb = new StringBuilder(mine);
sb.setCharAt(2, '');
sb.setCharAt(3, '');
mine = sb.toString();

System.out.println(mine);

【问题讨论】:

  • sb.deleteCharAt(2);怎么样
  • char 是一个原语,那么 null char 究竟是什么?
  • deleteChatAt 确实有效,谢谢你!我是编程新手,所以我不知道这种方法
  • 根据How many classes are there in Java standard edition?,JDK 12 中有将近 4,500 个类。现在想想有多少方法。我怀疑有没有人知道他们所有人。这就是为什么有一个叫做javadoc的东西,所以你可以看到类StringBuilder中存在哪些方法,例如。

标签: java string stringbuilder


【解决方案1】:

它显示错误,因为'' 不是字符,“无字符”不是有效字符。

您可以为此使用StringBuilder#delete

StringBuilder sb = new StringBuilder("<><><>");
sb.delete(2, 4);
System.out.println(sb);

如果您使用StringBuilder#deleteCharAt,请记住在调用该方法后索引已更改。对于您的情况,您必须从索引 2 中连续删除字符。

StringBuilder sb = new StringBuilder("<><><>");
sb.deleteCharAt(2);
sb.deleteCharAt(2);
System.out.println(sb);

【讨论】:

    【解决方案2】:

    您不能插入空字符。您需要使用 deleteCharAt(index) 或 delete(startIndex,endIndex)- 不包括结束索引。

    forEx-

    String mine="<><><>";
    StringBuilder sb = new StringBuilder(mine);
    sb.deleteCharAt(2);
    sb.deleteCharAt(2);
    mine = sb.toString();
    System.out.println(mine);
    

    这将给出输出

    【讨论】:

      【解决方案3】:

      您可以使用字符串生成器的 deleteCharAt(int index) 方法来完成。但请记住,在每次调用时它都会修改字符串,因此您需要使用相同的索引调用它两次。像这样的:

      Scanner sc = new Scanner(System.in);
      
              String mine = sc.next();
              StringBuilder sb = new StringBuilder(mine);
              sb.deleteCharAt(2);
              sb.deleteCharAt(2);
              System.out.println(sb.toString());
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-13
        • 2014-04-06
        • 1970-01-01
        • 1970-01-01
        • 2021-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多