lz 你好
这个就是一个比较简单的算法题 , 你可以自己写
但是用Java语言就不需要了 , Java自带泛型相关的类 , 很有用
其中TreeSet集合能自动识别添加的是否重复 , 重复的将不会添加 , 很方便
以下是实现代码:
import java.util.Listimport 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 本身就可以去除相同的元素 ! 没有必要用listimport 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 testpublic 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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)