[解決済み] 文字列 "" を 'Integer' 型に変換するのは無効です。
2022-02-07 23:37:04
質問
なぜ
Conversion from string "" to type 'Integer' is not valid.
? Matchは文字列で、""と比較すると、このようなエラーが発生します。値が入力されている場合などは動作しますが、空文字列をチェックしたい場合(最後のElseIf)はエラーになります。
Dim total As Double
Dim Match As String = ""
If Match.EndsWith("HA") OrElse Match.Contains("ha") OrElse Match.Contains("Ha") Then
Dim nonNumericCharacters As New Regex("\D")
Dim numericOnlyString As String = nonNumericCharacters.Replace(Match, String.Empty)
total = numericOnlyString * 10000
ElseIf Match.Contains("Ha m²") Then
Dim nonNumericCharacters As New Regex("\D")
Dim numericOnlyString As String = nonNumericCharacters.Replace(Match, String.Empty)
total = numericOnlyString * 10000
ElseIf Match.Contains("m²") OrElse Match.Contains("sqm") Then
Dim nonNumericCharacters As New Regex("\D")
Dim numericOnlyString As String = nonNumericCharacters.Replace(Match, String.Empty)
total = Val(numericOnlyString)
ElseIf CInt(Match) = 0 OrElse Match = "" Then
total = Val(String.Empty)
Else
total = Match
End If
MessageBox.Show(total)
解決方法は?
Bjørn-Roger Kringsjåのコメントにあるように、まず「悪い」文字列をチェックするために式を並べ替える必要があります。 また
total
を
Val
を空の文字列の あなたのコードは、次のように調整することができます。
...
ElseIf Match = "" OrElse CInt(Match) = 0 Then
total = 0
Else
...
しかし、少し勉強させてもらうために、その部分のコードを次のように書き直します。
Dim ParseResult As Integer
...
ElseIf String.IsNullOrWhiteSpace(Match) OrElse Not Integer.TryParse(Match, ParseResult) Then
total = 0
Else
...
これは、まず
Match
文字列が何もないか、空か、あるいは空白やタブなどである場合、それをパースして整数にすることを試みます。 もしそれが失敗したら、合計がゼロに設定されます。 もちろん、この処理はすべて
Integer.TryParse
を作成し、その結果を利用することになりますが、参考になれば幸いです。
関連
-
[解決済み] public subの呼び出し時に、非共有メンバーの参照にオブジェクト参照が必要となる
-
[解決済み] VB.NETのAndとAndAlsoの違いは何ですか?
-
[解決済み] VB.NETで<DllImport>を使用するには?
-
[解決済み] "文字列 "" から型 'Double' への変換は無効です。" VBでは
-
[解決済み] vb.netで2つのタイムスパン間の時差を取得する
-
[解決済み] フォームに線を引くにはどうしたらよいですか?
-
[解決済み] 特定のDataTableの行をループする
-
[解決済み] VB.NETで文字列を比較する
-
[解決済み] 複数のURLを同時にダウンロードするには?
-
[解決済み] VB.NET IntelliSense : ENTERオートコンプリートで改行を無効にする
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Microsoft Access Database FileのC:㊧Employees.accdbが認識されないのですが?
-
[解決済み] NUnit TestCaseのパラメータとして二重引用符をエスケープするにはどうすればよいですか?
-
[解決済み] VB.NETで<DllImport>を使用するには?
-
[解決済み] 文字列をダブルに変換する - VB
-
[解決済み] VB.NETで画像のリサイズをする
-
[解決済み] VB.NET: FormClosing()を中止する
-
[解決済み] 特定のDataTableの行をループする
-
[解決済み] インデックスが配列の範囲外であった
-
[解決済み] VB.NETで文字列を比較する
-
[解決済み] 文字列 "" を 'Integer' 型に変換するのは無効です。