0

次の関数の文字列(結果)を整数値に変換し、1000で割りたい(khz -> mhz)

private String ReadCPUMhz()
{
 ProcessBuilder cmd;
 String result="";


 try{
  String[] args = {"/system/bin/cat", "/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq"};
cmd = new ProcessBuilder(args);

Process process = cmd.start();
InputStream in = process.getInputStream();
byte[] re = new byte[1024];
while(in.read(re) != -1)
{
result = result + new String(re);
}
in.close();
} catch(IOException ex){
ex.printStackTrace();
}

result = result.replace("\n", "");
result = result.replace(" ", "");

return result;


}

この戻り値は、fe 192000 (khz) という文字列を返します。しかし、私はmhz値が欲しい..

と:

int mhz = Integer.parseInt(result)

アプリは自動的に閉じます..

khz 値を mhz に変換するにはどうすればよいですか?

.replace 行がないと、エラーが発生しました。Logcat は次のように述べています: "無効な int: "192000 " この数字の後には、ダイヤモンドのような特殊文字がたくさんあります..

そのため、正しい値を取得する方法がわかりません..

私を手伝ってくれますか?

結果の値に問題があると思います。

ありがとうございました

4

1 に答える 1

1

その数値を int に変換する前に、次のようなものを使用してすべての非数値文字を削除します。

int khz = result.replace("[^0-9]+", "");

次に、khz を数値に変換し、1000 で割ります。

于 2012-11-24T10:41:45.167 に答える