Java 字符串去重(保留第一次出现的字符)

需求描述:输入一串带重复字符的字符串,输出第一次出现的字符的字符串

例如:输入acvbabcd,输出结果应该是:acvbd


目录

方法一:利用StringBuffer + indexof

方法二:利用StringBuffer + 正则表达式


方法一:利用StringBuffer + indexof


public String removeRepeatChar(String str) {
	 
	StringBuffer sb = new StringBuffer();
	
	for (int i = 0; i < str.length(); i ++) {
		
		char charWord = str.charAt(i);
		
		int firstPosition = str.indexOf(charWord);
 
        int lastPosition = str.lastIndexOf(charWord);
		
		if (firstPosition  == lastPosition || firstPosition == i) {
			
			sb.append(charWord);
			
		}
	}
	return sb.toString();
}

方法二:利用StringBuffer + 正则表达式


public String removeRepeat(String str) {
	
	StringBuffer sb = new StringBuffer(str);
	
	String rs = sb.reverse().toString().replaceAll("(.)(?=.*\\1)", "");
	
	StringBuffer out = new StringBuffer(rs);
	
    return out.reverse().toString();
}

 

你可能感兴趣的:(Java,实用工具)