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

从字符串中删除重复的字符[duplicate]

厍彭薄
2023-03-14

我被要求编写一个程序,从字符串中删除重复的字母**注意:大小写字母被认为是重复的。我编写了代码,它适用于所有没有空格键的输入,当一个字符串带有空格时,它会显示错误。我只需要使用循环和数组,没有额外的函数或哈希,这是我的代码,几乎可以工作:

case 2:
    System.out.println("Give the string input");
    String original=reader.next();
    char[] charts=original.toCharArray();
    int length=charts.length;
    for (int i=0; i<length; i++){
        for (int j=i+1; j<length; j++){
            if(charts[i]==charts[j]||charts[i]+32==charts[j] ||charts[i]-32==charts[j]){
                int temp=j; //duplicate element index
                for (int k=temp; k<length-1; k++){ //delete shifting elements to left.
                    charts[k]=charts[k+1];
                }//inner inner for
                j--;
                length--; // reduce char array length because we removed a character
            }//if

        }//inner for

    }//for
    String CleanString= new String(charts); //new string without repeated chars
    CleanString=CleanString.substring(0,length); //set its length 
    System.out.println("New str = "+CleanString);
    break;

共有1个答案

华君浩
2023-03-14

我建议您使用扫描器的方法nextline()来读取带有空格的字符串,并使用您的算法对其进行处理

 Scanner scanner = new Scanner(System.in);
 String original = scanner.nextLine();

顺便说一下,如果您不能使用正则表达式,您可能希望使用基于计数排序的方法。创建一个数组,其大小等于char的最大大小。当遇到字符值'x'时,迭代字符串并递增索引x的数组元素。将x添加到字符数组中。当您遇到数组[X]>=1时,不要向数组中添加X。

 类似资料:
  • 问题内容: 我有像这样的字符串“ aaaabbbccccaaddddcfggghhhh”,我想删除重复的字符,得到像这样的字符串“ abcadcfgh”。 一个简单的实现是: 使用正则表达式是否可能有更好的实现? 问题答案: 你可以这样做: 正则表达式使用反向引用和捕获组。 正常的正则表达式是,但是您必须在Java中使用另一个反斜杠来使反斜杠转义。 如果您想要重复的字符数: 演示版

  • 我需要编写一个静态方法,该方法将作为参数,并返回一个新的。例如,如果我将“Maaaakkee”作为输入,它将返回“make”。我已经尝试了下面的代码,但它似乎没有显示最后一个字符。下面是我的代码:

  • 本文向大家介绍C#程序从字符串中删除重复的字符,包括了C#程序从字符串中删除重复的字符的使用技巧和注意事项,需要的朋友参考一下 使用哈希集删除重复的字符。 这是字符串- 现在,使用HashSet将字符串映射到char。这将从字符串中删除重复的字符。 让我们看完整的例子- 示例 输出结果

  • 字符串userKeyword来自用户键盘输入-我已经尝试编写一个方法来返回这个删除重复字符的字符串。 通过在while循环中移动新字符赋值,我现在得到的输出与PLAIN_ALPHA相同,而不是userKeyword,并省略了重复项。我做错了什么?

  • 问题内容: 我正在制作一个基于Java中字符串处理的程序,其中需要从字符串数组中删除重复的字符串。在此程序中,所有字符串的大小均相同。 “数组”是一个字符串数组,其中包含许多字符串,其中两个字符串彼此相似。因此,使用下面的代码,必须删除重复的字符串,但是不能删除。 如何删除重复的字符串? 我正在使用以下代码。 问题答案: 这会工作 或者只使用a 而不是数组。

  • 我正在用Java制作一个基于字符串处理的程序,在这个程序中,我需要从字符串数组中删除重复的字符串。在这个程序中,所有字符串的大小都是相同的。 “数组”是一个字符串数组,包含许多字符串,其中两个字符串彼此相似。因此,使用下面的代码必须删除重复的字符串,但不会删除。 如何删除重复字符串? 我正在使用以下代码。