使用雙指標進行字串壓縮
#實例:
public static void zipStr(String str) { char[] c = str.toCharArray(); int index = 0; int num = 1; int len = c.length; while (index < len - 1) { while (c[index] == c[index + 1]) { num++; index++; if (index >= len - 1) { break; } } System.out.print(c[index]); System.out.print(num); num = 1; index++; } }
結果如圖:
(建議教學:java快速入門)
說明:此方法對於形如(aaabbbccc)的字串進行壓縮,壓縮結果為a3b3c3,但對於形如(acaadbbbcceeeffffff)壓縮結果則為a1c1a2d1b3c2e3f6,顯然這種結果是不合理的,因此接下來運用HashMap進行字串壓縮
#使用HashMap進行字串壓縮
實例:
public static HashMap fun1(String str) { HashMap<Character, Integer> map = new HashMap<Character, Integer>(); char[] c = str.toCharArray(); for (int i = 0; i < c.length; i++) { Integer count = map.get(c[i]);//此处的count的类型一定要为Integer,如果为int类型,则count值为0 if (!map.containsKey(c[i])) { map.put(c[i], 1); } else { map.put(c[i], count + 1); } } return map; }
結果如圖:
#相關影片教學推薦:java影片教學
# ###以上是java如何實作字串壓縮的詳細內容。更多資訊請關注PHP中文網其他相關文章!