当前位置: 首页 > 知识库问答 >
问题:

试图以特定方式从StringBuilder中移除多个特定字符[重复]

沃威
2023-03-14

我试图从第一个和第二个索引中删除每个“x”,而不管大小写,但我的程序只删除第一个索引的字母,然后循环而不删除第二个。

    Scanner userIn = new Scanner(System.in);        
    StringBuilder str =  new StringBuilder();
    str.append(userIn.nextLine());

    for(int i = 0; i<2; i++) {
        if((str.charAt(i) == 'x') || (str.charAt(i) == 'X')) {
            str = str.deleteCharAt(i);
        }
    }
    System.out.println(str);

共有1个答案

阙奇思
2023-03-14

这是因为当你在开头删除一个字母时,所有的字符都会移动。所以对于字符串str=“xxhello”;:

x x H e l l o
0 1 2 3 4 5 6

然后在删除第一个X时:

x H e l l o
0 1 2 3 4 5

因此,在第二次迭代中,它将检查第一个索引(在本例中为h)是否为x。要解决此问题,可以将i设置为1,然后循环为零:

StringBuilder str =  new StringBuilder();
str.append(userIn.nextLine());

for(int i = 1; i> -1; i--) {
    if((str.charAt(i) == 'x') || (str.charAt(i) == 'X')) {
        str = str.deleteCharAt(i);
    }
}
System.out.println(str);

产出:

Hello
 类似资料:
  • 问题内容: 例如,我正在从文本文件中提取文本String,我需要这些词来形成数组。但是,当我执行所有这些操作时,有些单词以逗号(,)或句号(。)结尾,甚至附有括号(这完全是正常现象)。 我要做的是摆脱那些角色。我一直在尝试使用Java中的预定义String方法来做到这一点,但我还是无法解决。 问题答案: 用: replaceAll采用正则表达式。这个: …寻找每个逗号和/或句号。

  • 问题内容: 我需要从下面的变量值中删除括号“ [”和“]” ,并将结果存储在中。 使用,还是其他? 问题答案: 有几种可用的方法,有时可以使它们执行完全相同的任务,例如preg_replace / str_replace。但是,也许您只想从字符串的开头或结尾删除方括号;在这种情况下,preg_replace有效。但是,如果可能有多个括号,则preg_replace也可以完成这项工作。但是修剪更容易

  • 我有一个以下格式的Java字符串==ocid1。instancepool。oc1.iad。aaaaaaaa wq4bibigdvw6esvmbia4zhs7dkaposzkzxuvir2ajtfyciih45fa 我想提取第三个和第四个点之间的子串,即“iad”。实现这一点的最佳方式是什么?逻辑应该是通用的,并且应该适用于任何有四个点的字符串。

  • 嗨,我想在javascript中以特定的方式拆分一个字符串,比如字符串是C:/用户/我/AppData/弹性/弹性1.6。我知道我可以分裂它使用分裂()方法,并使用pop()和Shift()得到第一个和最后一个分裂的字符串,但我想分裂它喜欢,除了最后一个字符串。所以答案应该像“C:/用户/我/AppData/弹性” 我是这样做的,, 我像这样出去了, 但我想要这样,

  • 问题内容: 我正在尝试使用Python从字符串中删除特定字符。这是我现在正在使用的代码。不幸的是,它似乎对字符串没有任何作用。 如何正确执行此操作? 问题答案: Python中的字符串是不可变的(无法更改)。因此,的效果只是创建一个新字符串,而不是更改旧字符串。你需要重新绑定(分配)到line该变量,以使该变量采用新值,并删除这些字符。 而且,相对而言,你的操作方式会比较缓慢。这也可能会使经验丰富