2016-11-30 53 views
-1

請求幫助 我需要在'String dst;'中重新引用與控制檯
例如相同的結果。輸入txt = "aabbc";這給
return dst = "a2b2c1"將sysout更改爲字符串

public String compres(String txt) { 

     String dst = ""; 
     char character; 
     int count; 

     for (int i = 0; i < txt.length(); i++) { 
      character = txt.charAt(i); 
      count = 1; 
      while (i < txt.length() - 1 && txt.charAt(i + 1) == character) { 
       count++; 
       i++; 
      } 
      System.out.print(character); 
      System.out.print(count); 
     } 
     return dst; 
} 
+0

你的代碼的實際問題是什麼? – tnw

+0

這個問題太不清楚了,無法回覆 – Coder

+0

考慮使用Character to Integer的[Map](http://docs.oracle.com/javase/7/docs/api/java/util/Map.html)。遇到新字符時,將其添加到地圖中,整數值爲1.當您看到現有字符時,遞增與其相關的整數。然後迭代映射中的每個條目,並將字符/計數配對添加到字符串。 – Ironcache

回答

1

使用StringBuilder。今天

public String compres(String txt) { 

     StringBuilder dst = new StringBuilder(); 
     char character; 
     int count; 

     for (int i = 0; i < txt.length(); i++) { 
      character = txt.charAt(i); 
      count = 1; 
      while (i < txt.length() - 1 && txt.charAt(i + 1) == character) { 
       count++; 
       i++; 
      } 
      System.out.print(character); 
      System.out.print(count); 
      dst.append(character).append(count); 
     } 

     return dst.toString(); 
} 
0

我的隊友給了我最簡單的sollution我只需要添加在我的循環:

DST + =字符+ 「」 +計數;

而不是雙系統