我被要求编写一个程序,从字符串中删除重复的字母**注意:大小写字母被认为是重复的。我编写了代码,它适用于所有没有空格键的输入,当一个字符串带有空格时,它会显示错误。我只需要使用循环和数组,没有额外的函数或哈希,这是我的代码,几乎可以工作:
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;
我建议您使用扫描器的方法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制作一个基于字符串处理的程序,在这个程序中,我需要从字符串数组中删除重复的字符串。在这个程序中,所有字符串的大小都是相同的。 “数组”是一个字符串数组,包含许多字符串,其中两个字符串彼此相似。因此,使用下面的代码必须删除重复的字符串,但不会删除。 如何删除重复字符串? 我正在使用以下代码。