java如何去掉字符串中重复的字符

java如何去掉字符串中重复的字符,第1张

lz  你好

这个就是一个比较简单的算法题 , 你可以自己写

但是用Java语言就不需要了 , Java自带泛型相关的类 , 很有用

其中TreeSet集合能自动识别添加的是否重复 , 重复的将不会添加 , 很方便

以下是实现代码:

import java.util.List

import java.util.Scanner

public class DeleteRepeated {

private String str

private TreeSet<String> noReapted//带有String类型的TreeSet泛型

        

    public DeleteRepeated() {

     Scanner in = new Scanner(System.in)

    

     System.out.println ("输入一个字符:")

     str = in.nextLine()

    

     noReapted = new TreeSet()

    }

    

    //清楚重复的数据

    public void removeRepeated(){

     for (int i = 0 i < str.length() i++){

     noReapted.add(""+str.charAt(i))

     //str.charAt(i)返回的是char型  所以先加一个""空格 , 转换成String型

     //TreeSet泛型能保证重复的不加入 , 而且有序

     }

    

     str = ""

    

     for(String index:noReapted){

     str += index

     }

    

     //输出

     System.out.println (str)

    }

    

    public static void main(String[] args) {

     DeleteRepeated dr = new DeleteRepeated()

    

     dr.removeRepeated()

    }

}

运行截图:

希望能帮助你哈

  import java.util.*

  class This {

public static void main(String[] args) {

String a="06-104,07-104,06-104,07-104,03-103,04-103,03-103,04-103,05-102,"

a = a.replaceAll("^,*|,*$",",")

String reg = "(,[^,]+,).*\\1+"

while(a.matches("^.*" + reg + ".*$")){

    a = a.replaceAll(reg,"$1")

}

a = a.replaceAll("^,+|,+$","")

System.out.println(a)

}

}

1.一般会想到遍历字符串,去除重复的字符,这样时间复杂度是O(n²),时间复杂度太高。

static String sub(String str){

StringBuffer result =newStringBuffer()

List list =new ArrayList()

char[] cs = str.toCharArray()

for(int i=0i<cs.lengthi++){

if(!list.contains(cs[i])){

result.append(cs[i])

list.add(cs[i])

}

}

returnresult.toString()

}

2.再仔细想一想

用java的String的indexOf方法来达到字符串去重的目的,indexOf的功能是返回指定字符在此字符串中第一次出现处的索引:

public static String QuChong(String str){

        StringBuilder sb=new StringBuilder()

        for(int i=0i<str.length()i++){

            if(str.indexOf(str.charAt(i))==i){

                //第一次出现

                sb.append(str.charAt(i))

            }

        }

        String result=sb.toString()

        return result

    }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9975022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存