Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从字符串中删除重复字符_Java_String_Duplicates - Fatal编程技术网

Java 从字符串中删除重复字符

Java 从字符串中删除重复字符,java,string,duplicates,Java,String,Duplicates,我被要求编写一个程序,从字符串中删除重复的字母 **注:大写和小写字母视为重复字母。 我编写了代码,它适用于没有空格的所有输入,当字符串带有空格时,它会显示错误。 我只需要使用循环和数组,没有额外的函数或散列, 这是我的代码,几乎可以工作: 案例2: System.out.println(“给出字符串输入”); 字符串original=reader.next(); char[]charts=original.toCharArray(); int length=charts.length; 对于(

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

案例2:
System.out.println(“给出字符串输入”);
字符串original=reader.next();
char[]charts=original.toCharArray();
int length=charts.length;

对于(int i=0;i我建议您使用Scanner的方法
nextLine()
读取带空格的字符串,并使用您的算法进行处理

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

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

您的代码可以正常工作。只需在第三行使用此代码:

String original="";
original+=reader.nextLine();

您能否提供任何失败的特定输入?问题是您使用的是
next()
,而不是只读取一个标记的
nextLine()
。标记基本上是文本,只有一个空格,所以只有一个单词。要读取完整输入,请使用
nextLine()
“当字符串带有空格时,它会显示错误。”-什么错误?
if(charts[i]==charts[j]| | charts[i]+32==charts[j]| | | charts[i]-32==charts[j])
-这将把一些标点字符视为与一些小写字母“相同”。使用
Character.toLowerCase(a)==Character.toLowerCase(b)| Character.toUpperCase(a)==Character.toUpperCase(b)
取而代之。您可以保存一行:
String cleanString=new String(charts,0,length);
。他已经在上面明确声明reader为扫描仪。否则他无法接受输入。@AbdulAlimShakir我将Clearance的答案编辑为:static scanner reader=new scanner(System.in);我像你说的那样再次声明,代码成功了,谢谢我的朋友非常感谢@WardJub是的,我知道。我只是决定让其他读者明白:)希望能有所帮助