用java编写任意输入一行字符串。将原字符串中的重复字符删除后输出,同时输出都有哪些字符是重复的。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java编写任意输入一行字符串。将原字符串中的重复字符删除后输出,同时输出都有哪些字符是重复的。相关的知识,希望对你有一定的参考价值。
题目描述
任意输入一行字符串,检索重复出现的字符。将原字符串中的重复字符删除后输出,同时输出有哪些字符是重复的。
输入要求
输出要求
假如输入
ads_fagaerididfhdus_afiew
应当输出
ads_fgeridhuw
ads_fei
用LinkedHashSet就可以做到了..它是有序不重复的集合.
public static void main(String[] args)String s = "ads_fagaerididfhdus_afiew";
LinkedHashSet noRepeatSet = new LinkedHashSet();
LinkedHashSet repeatSet = new LinkedHashSet();
for (int i = 0; i < s.length(); i++)
char a = s.charAt(i);
if (!noRepeatSet.add(a))
repeatSet.add(a);
System.out.println(noRepeatSet.toString());
System.out.println(repeatSet.toString());
追问
输出变成这样了。
要求是这样的
这个...结果都出来了..你遍历一下这个set不就行了么....我只是简单的打印一下结果给你看而已..
而且你"应当输出"里面第二行结果是错误的.
i的重复是在s的重复之前的.
我还没学到这种就已经在考试了。江湖救急,就几分钟;
追答public static void main(String[] args)String s = "ads_fagaerididfhdus_afiew";
LinkedHashSet<Character> noRepeatSet = new LinkedHashSet<Character>();
LinkedHashSet<Character> repeatSet = new LinkedHashSet<Character>();
for (int i = 0; i < s.length(); i++)
char a = s.charAt(i);
if (!noRepeatSet.add(a))
repeatSet.add(a);
StringBuilder builder = new StringBuilder();
for(Character a:noRepeatSet)
builder.append(a);
System.out.println(builder.toString());
builder.setLength(0);
for(Character a:repeatSet)
builder.append(a);
System.out.println(builder.toString());
参考技术B package zhidao;
import java.util.ArrayList;
import java.util.List;
public class Ex4_9
public static void main ( String args[] )
ArrayList<Character> dumple = new ArrayList<Character> ();
System.out.println (filterDumpleWords ("ads_fagaerididfhdus_afiew", dumple));
System.out.println (dumple.toString ().replaceAll ("[\\\\[\\\\],\\\\s]", ""));
private static String filterDumpleWords ( String words, List<Character> dumple )
if (words.isEmpty ())
return words;
char c = words.charAt (0);
String temp = words.isEmpty () ? words : words.substring (1);
if (temp.indexOf (c) != -1)
dumple.add (c);
temp = temp.replaceAll (c + "", "");
return c + filterDumpleWords (temp, dumple);
hive创建表格是,row format delimited fields terminated by如何输入特殊字符
由于hive由java编写,所以row format delimited fields terminated by 后也可以使用java的方式输入特殊字符,比如用java的转义字符——反斜杠(\)+0+八进制数字可以代表任意ASCII码,或者用\u + 四位数字可以代表任意Unicode字符。
比如hive创建表格的默认分隔符为SOH字符,ASCII码中的序号为1,所以可以用‘\001‘表示。
详情可参考Java官方说明:http://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-OctalNumeral
不过需要注意的时,目前hive似乎只支持一个字符作为分隔符,不支持多个字符作为分隔符,如果row format delimited fields terminated by后面跟多个字符,比如
row format delimited fields terminated by ‘...‘
系统只会使用一个点(.)作为分隔符。
以上是关于用java编写任意输入一行字符串。将原字符串中的重复字符删除后输出,同时输出都有哪些字符是重复的。的主要内容,如果未能解决你的问题,请参考以下文章
java编写一程序,分别计算所输入的字符串中空格,换行符的个数。
用c语言编程,编写一个函数,输入一行字符,将字符串中最长的单词输出。
hive创建表格是,row format delimited fields terminated by如何输入特殊字符