2016-11-30 10 views
-1

助けてください 私は 'String dst;'でretrurnが必要ですコンソールと同じ結果を返します。

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の整数値でマップに追加します。既存の文字が表示されたら、それに関連付けられた整数を増やします。次に、マップ内の各エントリを繰り返し処理し、文字/カウントペアをStringに追加します。 – Ironcache

答えて

1

使用StringBuilderを与える入力txt = "aabbc";

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 + =文字+ "" +カウントを。

ダブルsysoutの代わりに

関連する問題