JAVA删除重复字符串
2017-09-14 19:49
351 查看
转自:http://blog.csdn.net/u011299745/article/details/52600856
string去除重复字符
今天面试遇到,使用了第一种,回来记录了下,觉得一般可能不是这样解的。想了第二种,还是觉得不妥,这里都贴出来。
网上有很多伪方法,只删除了相邻重复字符串,大家警惕!
主要使用list.contains()检测重复。
一直在想本来应该怎样做,因为面试官说了句只用了一层循环,可能这样是比较通用的:
1、charAt遍历String每个字符(第一层循环)
2、charAt遍历StringBuffer每个字符,如果没有就加进去(第二层循环)
string去除重复字符
今天面试遇到,使用了第一种,回来记录了下,觉得一般可能不是这样解的。想了第二种,还是觉得不妥,这里都贴出来。
网上有很多伪方法,只删除了相邻重复字符串,大家警惕!
主要使用list.contains()检测重复。
一直在想本来应该怎样做,因为面试官说了句只用了一层循环,可能这样是比较通用的:
1、charAt遍历String每个字符(第一层循环)
2、charAt遍历StringBuffer每个字符,如果没有就加进去(第二层循环)
import java.util.*; public class Main06 { public static void main(String[] args) { // TODO Auto-generated method stub String str = "kjkljklhuionsd"; System.out.println(sub(str)); System.out.println(sub1(str)); } //方法1 static String sub(String str){ StringBuffer result = new StringBuffer(); List list = new ArrayList(); char[] cs = str.toCharArray(); for(int i=0; i<cs.length; i++){ if(!list.contains(cs[i])){ result.append(cs[i]); list.add(cs[i]); } } return result.toString(); } //方法2 static String sub1(String str){ List list = new ArrayList(); StringBuffer sb = new StringBuffer(str); int j=0; for(int i=0; i<str.length(); i++){ if(list.contains(str.charAt(i))){ sb.deleteCharAt(i-j); //String 是没有delete方法的 j++; //因为删除了sb中的字符,有一个偏移 }else{ list.add(str.charAt(i)); } } return sb.toString(); } }
相关文章推荐
- Java删除字符串中重复的String类型的字符
- (1.4.5.1)Java编程题——在一个字符串中查找第一个非重复的字符
- (Java) LeetCode 82. Remove Duplicates from Sorted List II —— 删除排序链表中的重复元素 II
- java list用法,去除字符串数组中重复值
- 剑指offer-----删除链表中重复的节点(java版)
- java 删除字符串中的反斜杠\
- Java删除两个字符串中的相同元素(带符号)
- Java删除ArrayList中的重复元素的2种方法
- 【java】RC4加密转16进制获取长度为40的不重复优惠码字符串 【未优化版本】
- php利用正则表达式删除字符串里的重复元素
- 删除重复字符串的算法
- 在Java中利用set特性删除重复的数组元素
- Linux基础day4,shell编程,感觉比较经典的:删除字符串中重复字符
- 用java写关于删除一个字符串的字符以及删除一个字符串与另一个字符串中相同字符的问题
- java中删除数据库中重复数据的几个方法
- 删除集合里重复的字符串
- java 删除ArrayList LinkedList集合中的重复元素
- 删除一个字符串中的重复字符
- (Java)怎么去掉字符串数组中重复的值?
- 删除字符串中重复的字符