java字符串去重方法详解,字符串如何去重?

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问题可以为您解答。

推荐阅读:

java字符串转日期方法,java如何将字符串转为日期?

java判断字符串为空,方法详解

java输出字符串,怎么样输出字符串?