栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

给定一个字符串,查找第一个不重复的字符(最优解法)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

给定一个字符串,查找第一个不重复的字符(最优解法)

package com.mischen.it.test;


public class TestInterview {
    static String str = new String("asdsdasfbft");
    public static void main(String[] args) {
        long startTime=System.currentTimeMillis();   //获取开始时间
        System.out.println(findViewOneString(TestInterview.str));
        long endTime=System.currentTimeMillis(); //获取结束时间
        System.out.println("程序运行时间: "+(endTime-startTime)+"ms");
    }
    public static String findViewOneString(String str ){
        char[] arrChar = str.toCharArray();  //为什么没toStringArray?
        int arrChar_len = arrChar.length;
        String strOne = "";
        StringBuffer strBuf = new StringBuffer("");
        for (int i = 0; i < arrChar_len; i++) {
            strOne = String.valueOf(arrChar[i]);//a
            strBuf.append(strOne);//a
            //查找指定字符是在字符串中的下标。在则返回所在字符串下标;不在则返回-1.
            System.out.print(strBuf.indexOf(strOne));
            System.out.print("---");
            System.out.println(strBuf.length()-1);
            System.out.println(strBuf);
            //如果两个不相等,则证明不包括,即之前没有出现过的字符串
            if(!(strBuf.indexOf(strOne)!= (strBuf.length()-1))){
                //if里面为true的时候直接走下面的逻辑,进行查找后面到末尾是否出现过该字符,
                // 查询不到则直接返回,查询到不做处理
                if((str.substring(i+1, arrChar_len).indexOf(strOne) == -1)){
                    System.out.println(i);
                    return strOne;
                }
            }
        }
        return "没有一个不重复的字符";
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/293109.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号