-PR-
解決
済み

2つの文字列を比較する方法

  • すぐに回答を!
  • 質問No.86120
  • 閲覧数95
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 83% (20/24)

二つの文字列を比較して違う箇所を発見したとき
何らかの処理を行うようなプログラムを書きたいのですが、
私の想像力が貧困な為そのアルゴリズムを考え付く事ができません
どなたか知恵を貸していただけないでしょうか?

具体的には以下のようなことをやっています。
私は現在,変数で
var exStr1="||||||||||+|1|2|3|4|5|6|7|8|9|+||||||||||";
var exStr2="||2||||||||+|1||3|4|5|6|7|8|9|+||||||||||";
と宣言しているとき私は
exStr1とexStr2では文字列の何処が違うか知る処理を知りたいのです。

とりあえず今私は変数X1とX2に

X1 = exStr1.split("+");
X2 = exStr2.split("+");

として「+」を区切り文字にして配列に入れてみて
更にソレを「|」で区切りなおしてみてます。

for(i=0;i<10;i++){
  Y1 = X1[i].split("|");
  Y2 = X2[i].split("|");
}

そこで違う場所を探すための処理として私は以下のように書いて見ました。
しかし現在全然動いてくれません。

for(i=0;i<10;i++){
  if(X1[i] != X2[i]){
    for(j=0;j<4;j++){
      if(Y2[j] != Y1[j] && Y2[i]==""){
        //ここで何らかの処理をしたい。しかし今はif文の条件がおかしいのか、この行の処理に入らない。
      }
    }
  }
}

う~。なんか質問の域を越えてるとも思いますし、
それに我ながら質問の意味がわかりづらいとは思うのですが
お願いします。なんらかのヒントのようなものでも頂けたら幸いです。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル5

ベストアンサー率 100% (1/1)

================
var exStr1 = "||||||||||+|1|2|3|4|5|6|7|8|9|+||||||||||";
var exStr2 = "||2||||||||+|1||3|4|5|6|7|8|9|+||||||||||";
var result = new Array();

for (X = 0;X < exStr1.length;X++){
if (exStr1.charAt(X) != exStr2.charAt(X)){ result[result.length] = X; }
}
================
 上記スクリプトにより、配列resultに何文字目が違うかが入ります。
ピンぼけでないことを祈りつつ、参考までに。
お礼コメント
youhi

お礼率 83% (20/24)

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

私自身もっとよくまとめて問題を抽出してから書くべきだと思いながら書いてしまった事が一番問題でした。
大変申し訳ありません。

Ap3さんのサンプルは大変ためになりました。
ありがとうございました。
投稿日時 - 2001-06-06 15:45:29
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ