用java编写任意输入一行字符串。将原字符串中的重复字符删除后输出,同时输出都有哪些字符是重复的。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java编写任意输入一行字符串。将原字符串中的重复字符删除后输出,同时输出都有哪些字符是重复的。相关的知识,希望对你有一定的参考价值。

题目描述

任意输入一行字符串,检索重复出现的字符。将原字符串中的重复字符删除后输出,同时输出有哪些字符是重复的。
输入要求
输出要求
假如输入
ads_fagaerididfhdus_afiew

应当输出
ads_fgeridhuw

ads_fei

参考技术A

用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如何输入特殊字符

用javascript编写一个字符串验证函数,要求输入字符长度限制6至20个任意字符且至少包含三个字母

洛谷八连测R6yanQval-不可逆的重启动