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()

    }

}

运行截图:

希望能帮助你哈

set 本身就可以去除相同的元素 ! 没有必要用list

import java.util.*

public class Test {

public static void main(String[] args){

String str="This is a String"

String sbr="isaring"

Set set = new HashSet()

for(char c:str.toCharArray())

{

set.add(c)

}

for(char c:sbr.toCharArray())

{

set.add(c)

}

System.out.println(set)

}

}

[g, T,  , t, s, r, S, a, n, h, i]

你的代码里面:list.add(sbr.substring(j,j+1))

我觉得应该是list.add(sbr.charAt(j))//把相同的加进来,然后再去除这些相同的就是不同的了

package test

public class StringHeBing {

 public static String merge(String str1,String str2){

  int len = str2.length()

  for (int i = 0 i < len i++) {

   char c = str2.charAt(i)

   if (str1.indexOf(c) == -1) {

    str1 = str1.concat(c+"")

   }

  }

  System.err.println(str1)

  return str1

 }

 public static void main(String[] args) {

  String str1 = "上海金融大厦"

  String str2 = "上港集团"

  merge(str1, str2)

 }

}

上面的做法只把加加进来的字符串去重,而未把原来的字符串去重复,下面做了个新的

public static String merge1(String str1,String str2){

        String add = str1.concat(str2)

        String result= add.charAt(0)+""

        for (int i = 1 i < add.length() i++){

            char c = add.charAt(i)

               if (result.indexOf(c) == -1) {

                   result = result.concat(c+"")

               }

        }

        return result

    }


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存