1

9.555.555,00 のような文字列があり、すべての記号を削除して数字だけを保持したいのですが、これは文字列形式です。

indexof を使用して特殊文字を検索し、ループが特定の文字に到達したときに特定の文字をスキップするためにループを使用しているため、その文字が最終的な文字列に追加されません。

ただし、これを行うと、コードはピリオド記号の最初の出現を検出するように見えますが、indexOf() は、別の . 文字列で。

int dotIndex, commaIndex;

        dotIndex = tempBalance.indexOf('.');
        commaIndex = tempBalance.indexOf(',');

        for(int j = 0; j < tempBalance.length(); ++j){

            //System.out.println("Iteration: " + j + " ~ i @ : " + i);

            if(j == dotIndex){
                System.out.println("Current dot Index: " + dotIndex + " J: " + j + " : " + tempBalance);
                dotIndex = tempBalance.indexOf(j+1, '.');
                System.out.println("New dotIndex: " + dotIndex);
                continue;
            } else if(j == commaIndex){
                break;
            } else {

                tempString.append(tempBalance.charAt(j));
                //System.out.print("Found normal Number: " + tempBalance.substring(j, (j+1)));
            }

system.out.println の出力:

現在のドット インデックス: 1 J: 1 : 9.955.458,23
新しいドット インデックス: -1

4

5 に答える 5

0
want to remove all the symbols(.,) and just keep the numbers

正規表現の使用:

String exprStr="9.555.555,00";
exprStr=exprStr.replaceAll("[.,]","");
System.out.println(exprStr);

[ .,]はいずれかを識別する正規表現です。または

于 2013-07-22T10:19:27.963 に答える