[解決済み】JavaでStringが整数を表すかどうかを確認する最良の方法は何ですか?
2022-04-02 07:05:49
質問
私は通常、以下のイディオムを使って、Stringが整数に変換できるかどうかをチェックしています。
public boolean isInteger( String input ) {
try {
Integer.parseInt( input );
return true;
}
catch( Exception e ) {
return false;
}
}
ちょっとハチャメチャな気がするのは私だけでしょうか? もっといい方法はないでしょうか?
私の回答(ベンチマーク付き、ベースは 先の回答 によって コーディングウィズスパイク を受け入れることにした理由をご覧ください。 Jonas Klemmingの回答 という問題です。 このオリジナルのコードは、実装が早く、保守性も高いので、多くの人に使われると思いますが、非整数のデータが提供されると、桁違いに遅くなります。
解決方法は?
オーバーフローの可能性を気にしないのであれば、この関数は
Integer.parseInt()
.
public static boolean isInteger(String str) {
if (str == null) {
return false;
}
int length = str.length();
if (length == 0) {
return false;
}
int i = 0;
if (str.charAt(0) == '-') {
if (length == 1) {
return false;
}
i = 1;
}
for (; i < length; i++) {
char c = str.charAt(i);
if (c < '0' || c > '9') {
return false;
}
}
return true;
}
関連
-
[解決済み] 文字列の巻き方
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] JavaScriptで変数が文字列かどうかをチェックする
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] C++でintをstringに変換する最も簡単な方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ストリングビルダー.イコール Java
-
[解決済み] パラメータ[変数]の不正な修飾子;finalのみが許可される[closed]。
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] 一部の入力ファイルが非推奨のAPIを使用またはオーバーライドしている
-
[解決済み] JavaにおけるMouseListenerとMouseAdapterの違いについて
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] publicId と systemId の間に空白が必要です。
-
[解決済み] java swingアプリケーションでJCEがプロバイダBCを認証できない
-
[解決済み] 文字列配列から整数配列への変換
-
[解決済み】Javaで文字列が整数かどうか判断する【重複あり