在Java面试的时候,你一定遇到过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字符串去重方法你都了解了吗?以上的两种方法都可以很好的解决哦。(以上内容仅供参考)
你还想了解到更多java面试题以及答案吗?可以通过奇Q工具网的面试题以及常见问题栏目来进行了解和学习哦,更多java问题可以为您解答。
推荐阅读: