這篇文章將為大家詳細講解有關java如何從字符串中找出第一個不重復的字符,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
如何從字符串中找出第一個不重復的字符?
比如說字符串“沉默王沉沉默二”,第一個不重復的字符是“王”,對吧?因為“沉”重復了,“默”重復了。
public class FindNonRepeatingChar { public static void main(String[] args) { System.out.println(printFirstNonRepeatingChar("沉默王沉沉默二")); System.out.println(printFirstNonRepeatingChar("沉默王沉")); System.out.println(printFirstNonRepeatingChar("沉沉沉")); } private static Character printFirstNonRepeatingChar(String string) { char[] chars = string.toCharArray(); List<Character> discardedChars = new ArrayList<>(); for (int i = 0; i < chars.length; i++) { char c = chars[i]; if (discardedChars.contains(c)) continue; for (int j = i + 1; j < chars.length; j++) { if (c == chars[j]) { discardedChars.add(c); break; } else if (j == chars.length - 1) { return c; } } } return null; } }輸出結果如下所示:
王 默 null
說一下我的思路:
1)把字符串拆分成字符數組。
2)聲明一個 List,把重復的字符放進去。
3)外層的 for 循環,從第一個字符開始,如果已經在 List 中,繼續下一輪。
4)嵌套的 for 循環,從第一個字符的下一個字符(j = i + 1)開始遍歷,如果找到和之前字符重復的,就加入到 List 中,跳出內層的循環;如果找到最后(j == chars.length - 1)也沒有找到,就是第一個不重復的字符,對吧?
關于“java如何從字符串中找出第一個不重復的字符”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。