2016-04-10 14 views
-2

「a13cA45b」の「acaAAb」のような文字列を変換するコードは、文字列の最初と3番目の文字で、 A "は4番目と5番目にあります。文字列中の繰り返し文字をチェックしてその位置を数値化する方法

私はJavaにはかなり新しいので、何をすべきか分かりません。私のコードは、これまでのところです:

String resSplit[] = res.split(""); 
String str; 
for(int i = 0; i < resSplit.length; i++){ 
    str = resSplit[i]; 
    for (int j = -1; (j = res.indexOf(str, j + 1)) != -1;){ 
     resSplit[i] = resSplit[i] + (j+1); 
    } 
} 
for(int i = 0; i < resSplit.length; i++){ 
    for(int j = 1; j < resSplit.length; j++){ 
     if(resSplit[i].equals(resSplit[j])){ 
    //  resSplit[i] = ""; 
     } 
    } 
} 
res = ""; 
for(int i = 0; i < resSplit.length; i++){ 
    res = res + resSplit[i]; 
} 

resが変換する文字列で、解像度は、例えば、ある場合には、「acAAbは、」出力が「a1c2A34A34b5」であるところ。

助けてください!

例: 「ACCB」「cCb34」 「バカ」と「Ac23b」 「CCBB」の各文字の複数の

EDITがないので、同じまま:私は与えたい は、 1回以上表示される文字の数字

EDIT: わからないので、私の質問に「-1」しないでください。私は英語ではない、私はそれを説明するために最善を尽くしている!あなたは私がブロックされて得られます。ここでは

+0

ですから、文字列内のCとBを無視したいですか? – Hackerdarshi

+0

変換の入力と出力について説明できますか? – MackTank

+0

2回以上出現する文字にnumersを与え、他の数字は無数にしたい – Nihil

答えて

0

:\

for (int j = -1; (j = res.indexOf(str, j + 1)) != -1;){ 
    resSplit[i] = resSplit[i] + (j+1); 
} 

yesの場合、番号のみを追加する場合(j+1)が0より大きい場合は、確認することができます。

例:

for (int j = -1; (j = res.indexOf(str, j + 1)) != -1;){ 
    resSplit[i] = resSplit[i] + ((j+1)>0 ? j+1 : ""); 
} 
+0

resSplit [i] +((j + 1)> 0)私にエラーが表示されます:文字列からブール値に変換できません – Nihil

+0

"acAAb" acA34bの代わりに "a1c2A34A34b5"に変換します:c – Nihil

+0

少なくとも「?:」ということについて教えてくれました。ありがとうございます。c: – Nihil

関連する問題