「4,100、-2147483647、1」のような文字列を指定すると、「-2147483647,1,4,100」のようにソートしたいと思います。これまではStringを分割しようとしていましたが、分割して生成したStringに対してはparseIntを実行しました。しかし、parseIntはスコープ外の数値を扱うことができないので、NumberFormatExceptionをスローします。これを処理する最も効率的な方法は何でしょうか? (時間、精度...)ありがとう!Javaで最も効率的な文字列で数値をソートする方法
1
A
答えて
4
int
に変換すると入力が制限されます。数字を文字列として残すと、20億桁以上の数字を持つことができます。
その後、数値のサイズを比較するアルゴリズムを作成できます。それらが同じサイズの場合は、左から右へ各番号を調べ、どれが最大であるかを調べます。それ以外の場合は、数字の数字が小さくなります。
ネガもチェックしてください。ネガもチェックしてください。
0
数字がint
に収まらない場合は、long
を試してください。同様に、parseLong
。
それよりも大きなものが必要な場合は、BigInteger
を使用してください。それはあなたがそれに投げるものを処理することができます。
+0
それでもオーバーフローする可能性があります。 'BigInteger'はそうしないでしょう。 – Andreas
2
あなたの例で指定した数値のうち、整数の範囲外です。次のプログラムは、次のようにあなたが2,147,483,647よりも大きな数を持っている場合は、このプログラムからの出力は....
[-2147483647, 1, 4, 100]
だろう
public static void main(String[] args) {
String s = "4, 100, -2147483647, 1";
String[] strArray = s.split(", ");
ArrayList intList = new ArrayList();
for(int i = 0; i < strArray.length; i++) {
intList.add(Integer.parseInt(strArray[i]));
}
Collections.sort(intList);
System.out.println(intList);
}
...あなたの提供する文字列を解析し、適切に並べ替えます-2,147,483,648より小さい場合は、John KugelmanのようにLongまたはBigIntegerを使用することができます。
0
コード
public static void main(String[] args) {
String s = "4, 100, -2147483647, 1";
String[] strArray = s.split(", ");
List<BigDecimal> intList = new ArrayList<>();
for (String element : strArray) {
intList.add(new BigDecimal(element));
}
Collections.sort(intList);
System.out.println(intList);
}
関連する問題
- 1. 文字ベクトルを文字列に変換する最も効率的な方法
- 2. Luaで数値文字列を反復する最も効率的な方法は何ですか?
- 3. 最も効率的なページヒットを生成する最も効率的な方法
- 4. Javascriptで文字列の文字を処理する最も効率的な方法は何ですか?
- 5. 文字列を連結する最も効率的な方法は?
- 6. JSONの文字列を編集する最も効率的な方法
- 7. JavaScriptセットを文字列に変換する最も効率的な方法
- 8. スパークデータフレームでタイムスタンプ列をマージする最も効率的な方法
- 9. Javascript:文字列を整数に変換してから文字列に戻す最も効率的な方法
- 10. リスト内で最も長い文字列を選択するPythonの最も効率的な方法は?
- 11. Python:最も一般的な文字列を見つける最も効率的な方法
- 12. 大量の文字列をJavaでソートするための効率的でスケーラブルな方法
- 13. 文字列の最初の文字を判別する最も効率的な方法は?
- 14. テキストボックスで数値のカンマを保持する最も効率的な方法は?
- 15. C++を使用して文字列内の英数字の数を最も効率的にカウントする方法
- 16. Eigen行列をループする最も効率的な方法
- 17. .netで文字列を反転する最も効率的な方法は何ですか?
- 18. PHPで文字列を変更する最も効率的な方法は何ですか?
- 19. 条件分岐なしで大文字を小文字に変換する最も効率的な方法
- 20. 最も効率的な方法
- 21. 最も効率的な方法
- 22. 最も効率的な方法と
- 23. 最も効率的な方法
- 24. 最も効率的な方法
- 25. 最も効率的な方法のハンドラ
- 26. より効率的な方法で文字列を拾う
- 27. xmlファイルの値を探す最も効率的な方法は?
- 28. Rubyでループを実装する最もスマートで最も効率的な方法
- 29. Java:メソッド引数を変更する最も効率的な方法
- 30. Java/Android - 多くの変数を保存する最も効率的な方法
下回ってみhttp://stackoverflow.com/questions/2529045/how-do-i-sort-strings-that-contain-numbers-in-javaスーパービッグでどのくらい – miqdadamirali
? 「long」bigや「BigInteger」のように大きい? – Vasan
文字通り、出力として、数値が増加する順に数字を列挙する 'String'を出力します。入力の数字はどのように区切られますか? (ランタイムエラーを処理するサポートを是非_cut&pasteしてエラーメッセージ_(必要に応じて_en_に_調整)を貼り付けてください) – greybeard