0

文字列をInteger/Float / Doubleのいずれかに入れたいのですが、結果はNumberFormatExceptionになります。私の文字列は37,78584です。必要なタイプに変換するにはどうすればよいですか?まずは私の答えに感謝します。

4

3 に答える 3

2

Comma("、")を""に置き換えます

  String s ="37,78584";
  int ival = Integer.parseInt(s.replace("," ,""));
  double dval=Double.parseDouble(s.replace("," ,""));
  float fval =Float.parseFloat(s.replace("," ,""));
于 2012-09-14T03:24:10.367 に答える
2

このようなことを最初に行うことができます。最初に複数の番号を分割し、String[]それをループしてデータを取得します。

String myString ="37785 84";
String[] mSplittedNumber= myString.split(" ");
int intValue = 0;
int doubleValue = 0;
int floatValue = 0f;

for(int i=0;i< mSplittedNumber.length;i++)
{
      intValue =Integer.parseInt(mSplittedNumber[i]);
      doubleValue =Double.parseDouble(mSplittedNumber[i]);
      floatValue =Float.parseFloat(mSplittedNumber[i]);
}

注:文字列に識別子( ""、 "|"、 "、" ....など)を持つ複数の数値が含まれている場合は、上記の回答で問題が解決します

于 2012-09-14T03:32:24.343 に答える
0

MyImplementation:

    String myString = "37,78584";
    {
        /* Delete whitespaces from our string */
        myString = myString.trim();

        /* Change comma to dot cause Java double/float work with dots*/
        myString = myString.replace(",", ".");  
    }
    try {
        /* Parsing */
        Double myDouble = Double.valueOf(myString);
        System.out.println(myDouble);
    } catch (NumberFormatException ex) {
        ex.printStackTrace();
    }

願わくば、それはあなたにとって役に立ちました

于 2012-09-14T07:20:22.630 に答える