Java程式查詢字串的重複字元
解決這個問題的標準方法是從String中獲取字元陣列,遍歷它並構建一個包含字元及其計數的Map。然後遍歷該Map並打印出現不止一次的字元。所以你實際上需要兩個迴圈來完成這項工作,第一個迴圈來構建地圖,第二個迴圈來列印字元和計數。
檢視下面的例子,只有一個名為printDuplicateCharacters()的靜態方法,它可以同時執行這兩項工作。我們首先通過呼叫toCharArray()從String中獲取字元陣列。
接下來我們使用HashMap來儲存字元及其計數。我們使用containsKey()方法來檢查金鑰是否已經存在,如果已經存在,我們通過呼叫get()方法從HashMap獲取舊計數,並在將其遞增1之後將其儲存回來。
如何在字串JavaOnce中找到重複的字元?我們用每個字元和計數構建Map,接下來的任務是迴圈遍歷Map並檢查每個條目,如果count(條目的值大於1),那麼該字元已經發生了不止一次。您可以列印重複的字元,也可以使用它們執行任何操作。
<b>import</b> java.util.HashMap; <b>import</b> java.util.Map; <b>import</b> java.util.Scanner; <b>import</b> java.util.Set; <font><i>/** * Java Program to find duplicate characters in String. * * * @author http://java67.blogspot.com */</i></font><font> <b>public</b> <b>class</b> FindDuplicateCharacters{ <b>public</b> <b>static</b> <b>void</b> main(String args[]) { printDuplicateCharacters(</font><font>"Programming"</font><font>); printDuplicateCharacters(</font><font>"Combination"</font><font>); printDuplicateCharacters(</font><font>"Java"</font><font>); } </font><font><i>/* * Find all duplicate characters in a String and print each of them. */</i></font><font> <b>public</b> <b>static</b> <b>void</b> printDuplicateCharacters(String word) { <b>char</b>[] <b>char</b>acters = word.toCharArray(); </font><font><i>// build HashMap with character and number of times they appear in String</i></font><font> Map<Character, Integer> charMap = <b>new</b> HashMap<Character, Integer>(); <b>for</b> (Character ch : characters) { <b>if</b> (charMap.containsKey(ch)) { charMap.put(ch, charMap.get(ch) + 1); } <b>else</b> { charMap.put(ch, 1); } } </font><font><i>// Iterate through HashMap to print all duplicate characters of String</i></font><font> Set<Map.Entry<Character, Integer>> entrySet = charMap.entrySet(); System.out.printf(</font><font>"List of duplicate characters in String '%s' %n"</font><font>, word); <b>for</b> (Map.Entry<Character, Integer> entry : entrySet) { <b>if</b> (entry.getValue() > 1) { System.out.printf(</font><font>"%s : %d %n"</font><font>, entry.getKey(), entry.getValue()); } } } } Output List of duplicate characters in String 'Programming' g : 2 r : 2 m : 2 List of duplicate characters in String 'Combination' n : 2 o : 2 i : 2 List of duplicate characters in String 'Java' </font>
這就是如何在String中查詢重複字元的全部內容。 如果在程式設計工作面試中遇到此問題,您可以放心地編寫解決方案並解釋它們。