• ベストアンサー

文字列の比較をしたい

String str1 = "北海道" String str2 = "北海道" str1とstr2が同じ場合にある処理をしたい場合、比較のところの記述はどのように書けばよいのでしょうか。 単純に If str1 = str2 Then ~~~~~ Else   ~~~~ End If でよいのでしょうか。 環境はVB.NETです。

noname#45614
noname#45614

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

http://jeanne.wankuma.com/tips/string/compare.html 文字列を比較する http://park5.wakwak.com/~weblab/refStringClass.html 文字列操作メソッド http://dobon.net/vb/bbs/log3-5/3047.html >stringって単なる型ではなく、オブジェクトだったんですよね。その辺をしっかり理解していなかったようです。string自体に様々なメソッドがあったとは・・

noname#45614
質問者

お礼

ありがとうございます。

その他の回答 (1)

回答No.1

はい。OKです。

noname#45614
質問者

お礼

解決しました。ありがとうございます

関連するQ&A

  • 文字列で渡された式

    質問です。 タイトルのままですが文字列で渡された式で 処理を決定させることはできるのでしょうか? たとえば ============================ dim str as string = "10 > 5" if strの文字列判定 then msgbox("TRUE") else msgbox("FALSE") end if ============================

  • Like演算子で、[と]を文字として扱い比較したい

    今、フォルダ内のファイルリストを作成するVBA(Excel2003)を作っています。そこで、ファイル(絶対パス:フルパス)に「含まれていい文字」と「含まれない文字」(キーワード)を指定できる機能を作っています。 以前、VB6で類似の機能を作った時は、すんなり行ったのですが、VBAではうまくいきません。正規表現が使えるに越したことはないのですが、「 [ や ] を文字として認識するだけでもいいです。」 リストを作るフォルダには、  [20].txt  テキスト[a]txt  メモ[10] - コピー.txt などのテストファイルとその他ファイルが存在します。 キーワードを指定しないときには、うまく行きます。 指定すると、たとえば [10].txt というファイルがヒットしないように、NGワードを [10] を指定すると、[20].txtまでヒットしません。[a]では全てがヒットしません。 また、OKワードに[10]を指定すると[10]と[20]がヒットします。 ===== NGワードを比較している部分 ==== 引数:in_str が NGワード(スペースで区切って複数指定可能) 引数:target_Str がフルパス Public Function keywords_NG(in_Str As String, target_Str As String) As Boolean   If in_Str = "" Then     keywords_NG = True     Exit Function   End If      Dim wordArray() As String   Erase wordArray()   wordArray() = Split(in_Str, Space(1))     Dim tempFLG As Boolean   tempFLG = True      Dim wordIDX As Long   For wordIDX = 0 To UBound(wordArray) Step 1     If wordArray(wordIDX) <> "" And target_Str <> "" Then       If target_Str Like "*" & wordArray(wordIDX) & "*" = True Then         tempFLG = False       End If     End If   Next   If tempFLG = True Then     keywords_NG = True   Else     keywords_NG = False   End If End Function ===== OKワードを比較している部分 ==== 引数:in_Str が OKワード(スペースで区切って複数指定可能) 引数:target_Str がフルパス Public Function keywords_OK(in_Str As String, target_Str As String) As Boolean   If in_Str = "" Then     keywords_OK = True     Exit Function   End If   Dim wordArray() As String   Erase wordArray()   wordArray() = Split(in_Str, Space(1))      Dim tempFLG As Boolean   tempFLG = False      Dim wordIDX As Long   For wordIDX = 0 To UBound(wordArray) Step 1     If wordArray(wordIDX) <> "" And target_Str <> "" Then       If target_Str Like "*" & wordArray(wordIDX) & "*" = True Then         tempFLG = True       End If     End If   Next      If tempFLG = True Then     keywords_OK = True   Else     keywords_OK = False   End If    End Function ===== [や]を区切り文字ではなくする関数 ==== Public Function keywords_escape_sequence(keywordStr As String) As String      If keywordStr = "" Then     keywords_escape_sequence = ""     Exit Function   End If      Dim myIDX As Currency   Dim str_X As String      str_X = ""        For myIDX = 1 To Len(keywordStr) Step 1     If Mid(keywordStr, myIDX, 1) = "[" Then       str_X = str_X & "[[]"     ElseIf Mid(keywordStr, myIDX, 1) = "]" Then       str_X = str_X & "[]]"     Else       str_X = str_X & Mid(keywordStr, myIDX, 1)     End If   Next      keywords_escape_sequence = str_X End Function =====================================================     If keywords_OK(keywords_OK_Str, フルパス)) = True And _       keywords_NG(keywords_NG_Str, フルパス)) = True Then         'ファイルリスト作成     end if ===================================================== 正規表現を使うためには…というページを見つけ参照設定に以下の項目にチェックを入れてみましたが、結果は変わらす □Microsoft VBScript Regular Expressions 5.5 ===== RegExp と CreateObject ==== 参照設定をできれば変更したくない場合は、RegExp と CreateObject を使えば良いとあるページに書いてありましたが、参照設定でもできなかったので、これだけは試してません。 ヒントだけでもお教えください。

  • String型を3つで比較したい!

    String型を3つで比較したい! Compare関数は2つしか比較出来ません。 3つだとSelect文を2重に書くしか方法はないのですか? 参考サイト: http://jeanne.wankuma.com/tips/vb.net/string/compare.html ちなみに、やりたいことは電卓で、.が複数回呼ばれたとき1つだけにしたいのです。 本当は、 If Stirng型今回 = Stirng型前回 = "." Else  処理したい内容 End If です。

  • リストボックスのAdditemの文字列生成

    リストボックスのAdditemで表示する内容を一覧にしたいと思い、文字列を生成してみたのですが、どうもきれいに揃いません。どうしてーーー??? Do Until rs.EOF (ここで一旦各変数を初期化します) str_co = rs("会社名") str_name = StrConv(rs("商品名"), vbWide) str_price = rs("価格") str_orderday = rs("注文日") str_slip = rs("伝票No.") If Len(rs("受取日")) > 0 Then str_catchday = rs("受取日") Else str_catchday = "" End If If Len(rs("入金日")) > 0 Then str_payday = rs("入金日") Else str_payday = "" End If If rs("返品フラグ") = 1 Then str_returnday = "無" Else str_returnday = "有" End If spc1 = String(7 - Len(str_co), " ") spc2 = String(50 - Len(str_name), " ") spc3 = String(12 - Len(str_price), " ") spc4 = String(15 - Len(str_orderday), " ") spc5 = String(20 - Len(str_slip), " ") spc6 = String(15 - Len(str_catchday), " ") spc7 = String(15 - Len(str_payday), " ") str_data = str_co & spc1 & str_price & spc3 & str_orderday & spc4 & _ str_slip & spc5 & str_catchday & spc6 & str_payday & spc7 & str_returnday .AddItem str_data

  • If x < y Then 0 Then ←この書き方の意味は?

    VB6.0の出来たプログラムをVB.NETに移行する為にソースを見ているのですが If x < y Then 0 Then ~処理A~ Else ~処理B~ End If と記述されている部分がありました。 「0 Then」がなければ、xがyより小さい時、処理Aを行い、 それ以外の場合は、処理Bを行うというのはわかります。 この時のThen 0 Thenとはどういった意味になるのでしょうか?

  • オブジェクトの比較と文字列の比較の違い

    今、基本情報技術者の勉強でJavaを勉強しているのですが、持っているテキストの問題で分からないものがありました。 String str1 = "Hello."; String str2 = "Good, Bye."; String str3 = str1; String str4 = str1 + str2; とすると、 (A)str1 == str2; がfalse (B)str1.equals(str3); がtrue というのは分かるのですが、 (C)str4 == "Hello.Good, bye."; がなぜfalseになるのでしょうか? ==はオブジェクトの比較で、equlasは文字列の比較だと書いているのですが、よく違いが分かりません。 また、 上の4つの処理の後に str3 = "test"; という処理を行っているのですが、このときの状況は、 str1はHello.のままで、 str3のみがtestになっている、と理解したのですがそれで合っているのでしょうか?

    • ベストアンサー
    • Java
  • 文字列比較の演算子

    Perl の世界から PHP にやってまいりました。 Perl では、文字列の比較には専用の演算子がありまして、 str1 eq str2 とすると、二つの文字列が同値かどうか調べられますが、PHP にはこのような演算子はないのでしょうか? www.php.net のマニュアルを見ても、そのような演算子がありません。 == 演算子が使えるものかと <?php $str1 = "this is string" ; $str2 = "this is string" if( $str1 == $str2 ) { echo "two string is same" ; } ?> などを試してみるとうまくいくようですが、www.php.net のマニュアルには「文字列を数値化して比較する」と書いてあり、本当に文字列比較が出来るか確信がもてず…。 結局、文字列を比較したいときには strcmp を呼び出していますが、これは PHP 的には正しいのでしょうか?

    • ベストアンサー
    • PHP
  • 日付の比較について

    PHPで日付を比較したいのですが、、 どのようにしたらよいかわかりません。 データベースのように大なり小なりで比較できるのでしょうか? 例えば、下記のように記述した場合は日付比較は正常に行われているのでしょうか? 今日の日付 $date = date('Y-m-d'); DBから取得した日付 $str_date = '2005-05-22'; if($date < $str_data){ 処理1 }else{ 処理2 }

    • ベストアンサー
    • PHP
  • 文字列検索チェック

    VB6.0について質問です。 VBからデータベースのデータを読込んでそれに応じたチェックボックスを チェックするという制御がうまくいきません。 詳細は、データは空白で区切られていて3つまでは固定された文字で送られてきます。(リンゴ バナナ オレンジ) これだけだと以下のプログラムで済むのですがこの3つ以外に不確定の文字が 入っている場合はその他にチェックを入れたいのですが どのようにプログラムを組めばよいですか? チェックは複数選択可能です。 *targetStringにデータベースからのデータが入ってきます If InStr(targetString, "リンゴ") <> 0 Then Chk1(0).Value = 1 Else Chk1(0).Value = 0 End If If InStr(targetString, "バナナ") <> 0 Then Chk1(1).Value = 1 Else Chk1(1).Value = 0 End If If InStr(targetString, "オレンジ") <> 0 Then Chk1(2).Value = 1 Else Chk1(2).Value = 0 End If

  • ファイル読み込み時の文字列比較が上手くいきません

    よろしくお願いします。 cgiの勉強中なのですが、文字列の比較が上手くいかずに困っています。 プログラム中に記述した日本語は問題なく同じ文字として比較されるのですが、 ファイルから文字を読み込んだ日本語を比較させようとすると上手くいきません。 以下のプログラムでは4箇所から「yes」と返ってくるのが理想でしたが、 後半の2箇所からしか「yes」と返ってきませんでした。 文字コードの問題かとも思い、NKF等で変換してみたり試してみましたが上手くいきませんでした。 また、どのファイルもUTF-8に統一されているのでファイルの読み込み時に文字コードの変換は必要無いのではないかとも思っています。 使用しているファイルは以下の3ファイルとなり、同一フォルダに入れています。 プログラム中で日本語を使用したかったので、どのファイルも文字コードはUTF-8で保存しています。 question.rb  :メインプログラム Unit_module.rb :メインから呼び出すモジュール question.txt  :文字列の入ったテキスト(最後は改行していません) rubyのバージョンは1.9.3p125を使用しています。 独学ですので周囲に訊く事も出来ずにいます。 何が問題で文字列の比較が上手くいっていないのでしょうか? 以下は各ファイルの内容となります。 ---------------question.rb----------------------------------------- #! /usr/local/bin/ruby # -*- encoding: utf-8 -*- #モジュール読み込み require "./Unit_module" include Unit #HTML作成 print "Content-Type:text/html;charset=utf-8\n\n" print <<EOF <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> EOF str_test = "" #ファイル読み込み時の日本語の比較 f = open("./question.txt", "r") f.each{|line| str_test = line if str_test == "東" then print "yes" end test(str_test) } #プログラム中に記述した日本語の比較 str_test = "東" if str_test == "東" then print "yes" end test(str_test) print "</body></html>" -----------Unit_module.rb------------------ # -*- encoding: utf-8 -*- module Unit def test(str_test) if str_test == "東" then print "yes" end end end -----------question.txt--------------------- 東 --------------------------------------------

    • ベストアンサー
    • Ruby

専門家に質問してみよう