問題タブ [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.

0 投票する
2 に答える
428 参照

.net - この場合、StringComparer.CurrentCulture を使用するのは正しい選択ですか?

Enumerable.OrderByを使用して並べ替えたい UTF-8 文字列のリストがあります。文字列には、英語、ドイツ語、日本語、またはそれらの組み合わせなど、任意の数の文字セットを含めることができます。

たとえば、入力リストの例を次に示します。

StringComparer.CurrentCultureを使用することが に渡す正しい文字列比較パラメーターであるかどうかについて混乱していますOrderBy()。アプリケーションの現在の文化が、ルールを並べ替えるen-USだけでなく、UTF-8 データを "正しく" 並べ替えたい場合はどうなりますか?en-US

私の混乱は、おそらく、.NET の文字列比較および並べ替えのセマンティクスと完全に一致しない OracleのNLSSORT関数を理解していることに起因しています。たとえば、NLS_SORT=Japanese_M を設定すると、並べ替え可能な列の特定の文字列に一部またはすべての文字が含まれているかどうかに関係なく、ラテン語、西ヨーロッパ言語、および日本語が正しく並べ替えられます。

0 投票する
10 に答える
4160 参照

language-agnostic - 月の並べ替え (文字列あり) アルゴリズム

私はこの月の配列を持っています:

そして、私はそれを次のようにソートしたいと思います:

私は現在、「if/else」の恐ろしいカスケードを考えていますが、これを行う他の方法があるのだろうか.

悪い点は、これを「文字列」でのみ行う必要があることです (つまり、Date オブジェクトなどを使用せずに)。

良いアプローチは何でしょうか?

0 投票する
2 に答える
4387 参照

delphi - Delphi - 文字列の違いを比較してマークする

私がする必要があるのは、2 つの文字列を比較し、変更の開始/終了マークで違いをマークすることです。例:

出力は

p>

私はしばらくの間、これを理解しようとしてきました。そして、これを行うのに役立つと信じていた何かが見つかりましたが、これを実現することはできません.
http://www.angusj.com/delphi/textdiff.html

ここでは約 80% 動作していますが、やりたいことを正確に実行する方法がわかりません。どんな助けでも大歓迎です。

angusj.com から basicdemo1 を取得し、これを修正してここまで到達しました。

0 投票する
4 に答える
1314 参照

windows - 2つのTCHARの大文字と小文字を区別しない比較

大文字と小文字を無視して2つの個別の文字(charまたはUTF-16 )を比較する良い方法は何ですか?wchar_t

些細な実装では、両方を大文字または小文字にします。これらの1つがより良いと考えられていますか、それとも他の方法がありますか?

Unicodeのすべての詳細で完全に正しい比較が不可能であることを理解しています。比較は主に、構成ファイルとマイクロ文法の基本的な解析を目的としているため、完全である必要はありません。文字ごとの比較の制限の下で、それほど間違っていない実装を探しています。

[編集]
これらの構成ファイルには、ユーザーに表示されるテキストが含まれている場合があります。また、ユーザー入力を分析するとき、Unicodeテキストを避けることはできません。

0 投票する
5 に答える
8363 参照

sql-server - SQL Server 2005 の文字列比較で問題を引き起こす Unicode 文字

このクエリ:

タグ列の値が「fußball」である結果を返します。列 "tag" は nvarchar(150) として定義されます。

文法的に似た言葉であることは理解していますが、この動作を説明して擁護できる人はいますか? 列/テーブルの大文字と小文字の区別を変更できる同じ照合設定に関連していると思いますが、誰がこの動作を望むでしょうか? 列の一意の制約も、制約違反のために一方の値が存在する場合に、一方の値の挿入に失敗します。これをオフにするにはどうすればよいですか?

フォローアップボーナスポイントの質問. このクエリが行を返さない理由を説明してください。

おまけの質問 (回答?): @ScottCher は、これは文字列リテラルの「fussball」が varchar として扱われていることが原因であると私に個人的に指摘しました。このクエリは結果を返します:

しかし、繰り返しますが、これはそうではありません:

よくわかりません。

0 投票する
5 に答える
53744 参照

c# - 公差のある文字列の比較

文字列を文字列の配列と比較する方法を探しています。もちろん、正確な検索を行うのは非常に簡単ですが、スペルミスや文字列の一部の欠落などをプログラムに許容させたいと思っています。

そのような検索を実行できるフレームワークはありますか? 私は、検索アルゴリズムが一致のパーセンテージなどでいくつかの結果の順序を返すことを念頭に置いています。

0 投票する
2 に答える
1580 参照

php - バージョン番号を比較する最も柔軟な手段は何ですか?

インストール済みのアプリケーションと使用可能なアプリケーションのバージョン番号を比較するスクリプトを使用しています。通常、単純な比較演算子を使用します。私はこのアプリケーションを PHP 5.3 環境で構築しているので、version_compare()の使用を検討しましたが、それは私のニーズに完全に適合していないようです。

比較しているバージョン文字列は多くの形式に従うことができますが、これまでに遭遇したものは次のとおりです。

  • 「2.6.18-164.6.1.el5」対「2.6.18-92.1.13.el5」
  • 「4.3p2」対「5.1p1」
  • 「5.1.6」対「5.2.12」
  • 「2.6.24.4-foo.bar.x.i386」対「2.4.21-40」

ご覧のとおり、私が作業するための一貫した形式は実際にはありません。

私が検討したことの 1 つは、各バージョン文字列を数値以外の文字で分割し、結果の配列を反復して相対インデックスを比較することでした。ただし、特に「2.6.24-4-foo.a.12.i386」と「2.6.24-4-foo.b.12」の場合、それが良い方法かどうかはわかりません.i386'.

特にPHP環境で、このような非常に緩いバージョン番号を比較する十分にテストされた方法はありますか?

0 投票する
2 に答える
2916 参照

php - PHP substr と strlen の代替

PHP には、より安全なビットを処理する関数 substr() および strlen() の代替手段がいくつかあると聞きました。これは本当ですか?もしそうなら、それらの機能は何ですか? 関数 strcmp() に基づいていると聞きましたが、どのように使用できるか直接わかりません。

0 投票する
1 に答える
336 参照

.net - 一致しないハイフンを含む文字列比較

このようなURL書き換えモジュールのメソッドがあります

ただし、次の値についてはtrueを返しません。

x = "/ xx09-02-09xx"; y = "09-02-09";

しかし、以下のように生の文字列を使用して単体テストを作成すると、trueが返されます

違いは何でしょうか?エンコーディング?文化?ToLowerInvarient()を削除しようとしましたが、違いはありません

Matchメソッドで次のすべてを試しました

ただし、リライトモジュールで実行した場合、これらの値に対してtrueを返すものはありません。しかし、それらは単体テストで行います。ですから、弦についての何かは明らかに異なります

何か案は?

0 投票する
3 に答える
1769 参照

php - MySQL DATETIME形式の比較-strtotimeは必要ですか?

私はの線に沿って何かをしてきました。

strtotimeは必要ですか?日時形式の文字列をより直接比較できますか?

すなわち

それは常に機能しますか?