問題タブ [string-comparison]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
string - Java でエンコーディングに依存しない文字列比較を実行するにはどうすればよいですか?
文字列の比較で奇妙な問題が発生しています。クライアントからサーバーに文字列を (を使用してバイトとしてgetBytes()
) 送信します。クライアントとサーバーの両方で-Dfile.encoding=UTF-8
.
valueOf
クライアントから受け取った文字列を列挙型に変換しようとしたときに、この問題に気付きました。文字列を印刷すると、まったく同じに見えます。しかし、 を実行するcompareTo
と、ゼロ以外の数値equals
が返され、 が返されますfalse
。
エンコードの問題だと思います。よくわかりませんが、ソケットを使用したクライアントサーバープログラミングに関しては、まだ少し初心者です。
これは私が得るものです:
私は何を間違っていますか?
アップデート
ストリームから文字列を再構成する方法は次のとおりです。おそらく、これは私が何か間違ったことをしている場所ですか?
java - Java での文字列比較と文字列インターン
String
いつs をオブジェクトとして比較する必要があり、いつそれらのequals
メソッドを使用する必要がありますか? 念のため、私はいつも を使用していますequals
が、あまり効率的ではないようです。string1 == string2
安全に使用できると確信できるのはどのような状況ですか?
ありがとう!
java - ==、equals()とinstanceof()の違い
出力はEqual B
さて、なぜ ==
生成しないのですかequals A
何instanceof
ですか?
php - PHPでスペルミスのある単語に似た単語を見つける方法は?
私の問題を説明します:
というデータベース テーブルがありますcountry
。と の 2 つの列がID
ありname
ます。
を検索したい'paris'
が、単語のスペルを間違えた場合: 'pares'
('e'
の代わりに'i'
)、DB から結果が得られません。
検索に役立つ類似の単語をシステムに提案してもらいたい。
そのため、パリ、パレデスなどの類似した単語を含む DB からの提案を行うスクリプトを作成するためのヘルプを探しています。
java - 2 つの文字列に同じ文字が含まれているかどうかを確認していますか?
2 つの文字列に同じ文字が含まれているかどうかを確認する方法はありますか。例えば、
c - `switch` ステートメントを使用して C の文字列を比較するにはどうすればよいですか?
C にはswitch
、テスト整数値に基づいてコードのさまざまな条件分岐を実行できるようにする構造があります。
文字列値、つまりif
?else
char *
php - 文字列内のすべての文字を含む必要がある正規表現一致
これはすでに質問されて回答されていると確信していますが、かなり検索してRegex Tutorialを読んだ後、正直に答えを見つけることができませんでした。私が探しているのは、別の文字列と同じ文字と長さを持つ文字列と一致させることです。たとえば、文字列"abcde"は"edcba"と一致しますが、 "abcdf" 、 "aabbc"、または" abc"とは一致しません。
文字クラスを使用する、私が思いついた最も近いテストコードを次に示しますが、一致の開始時にクラス内の各文字を基本的に反復するように正規表現を取得する方法はわかりませんストリング:
結果は次のとおりです。
私が本当に欲しいのは:
c - staticchar[]とconstchar*の比較
ここで、aとbに「abc」を割り当てると、残りの252バイトは「\ 0」のままになり、bの場合はそのようにはなりません。ですから、比較してみると違うことがわかります。1つの解決策は、strncmp()で行うように、sizeof(b)まで比較することです。それを行う他の方法はありますか?おそらく、あるものを別のものに変換することによって?
前もって感謝します。
java - false であるべきなのに、compareTo が true を返すのはなぜですか?
データ構造クラス プロジェクトからの誤った検索結果をデバッグしています。この現在のプロジェクトでは、順序付けられた展開されたリンク リストを作成し、コンテンツに対して検索を実行してから、包括的開始点から排他的終了点までのアイテムのサブリストを返す必要がありました。これを行うには、内部配列を検索して開始要素のインデックス ポイントを見つける必要があります。これはバイナリ検索で行いますが、これは最初に見つかった一致のみを返し、その前に他の一致が存在する可能性があるため、最初の真の一致を見つけるために配列に戻る必要があります。私はこれを介して行います
教授は、文字列を分割し、各文字を構造内の項目として追加するテスト コードを提供しました。また、ネストされた StringCmp クラスも含めました。これは、comp
上記の二分探索宣言のように参照されます。彼の比較方法は
ただし、i から o までのサブリスト メソッドでテストを実行すると、このメソッドは true 値を返し、これにより、作成comp.compare(h,i)==0
した検索クラスから開始結果がスローされます。return index++
私はもともと、構造テストに合格するのに十分な量で補正しましたが、予想される開始点を 1 つずらしました。
では、明らかに false であるのに、なぜこれが true を返すのでしょうか?
EDITは、i から o まで実行されると予想されるサブリスト メソッドの出力を追加しました
入力テスト文字列=abcdefghijklmnopqrstuvwxyzaeiou
サブリストメソッドからの戻り:
チャンク 1 (10 の 4 を使用): [h][i][i][j]
チャンク 2 (10 の 4 を使用): [k][l][m][n ]
h はリストにまったく含まれていないはずですが、comp.compare(node.items[index], item)==0
は i == h という true を返しています。これは明らかに false です。
編集 2 プロジェクトの 2 番目の部分では、テキスト ファイルを解析し、Artist、Title、および Lyrics フィールドから Song オブジェクトを作成し、プレフィックスを使用してタイトルを検索する必要があります。ここで発生するバグは一文字検索や複数文字検索では発生しないので、テストの StringCmp ネストクラスに問題があると思います。
metrics - 類似度の尺度と差異 (距離) の尺度を変換するにはどうすればよいですか?
類似度と距離の尺度を変換する一般的な方法はありますか?
2 つの文字列に共通する 2 グラムの数などの類似度の尺度を考えてみましょう。
これを、レーベンシュタイン距離などの差の尺度を期待する最適化アルゴリズムにフィードする必要がある場合はどうすればよいでしょうか?
これは単なる例です...存在する場合、一般的な解決策を探しています。レーベンシュタイン距離から類似度の尺度への移行方法のように?
アドバイスをいただければ幸いです。