2つの文字列を比較し、それらが似ているかどうか、そしてどれくらいあるかを調べる必要があります。たとえば、私は文字列"5000002105416"
を持っていて、"5000003205416"
と比較すると、結果として0.85
が得られるはずです。シンボルを含む両方の文字列で一致しない2
シンボルだけが存在するためです。なぜなら、Zbarをバーコードスキャニングに使用しているのですが、時には誤った結果が出ることがあります。この結果が、一致する必要のあるハードコードされたタグと似ているかどうかを確認する必要があります。文字列の類似性をチェックする方法
答えて
、あなたはそれらの両方を反復処理機能を必要とするので、あなたのString
sが、同じ長さを持っていると仮定し、各char
を比較し、違いの数を見つけてみましょう:
double similarity(String a, String b) {
if(a.length() == 0) return 1;
int numberOfSimilarities = 0;
for(int i = 0; i < a.length(); ++i) {
if(a.charAt(i) == b.charAt(i)) {
++numberOfSimilarities;
}
}
return (double) numberOfSimilarities/a.length();
}
違いの代わりに類似点を数えるのが簡単ではないでしょうか?今あなたは余分な操作をしています。 '(1-dif)' –
また、intをdouble型にキャストしていないので、これも1または0を返します。 –
@nickzoum、私の答えを更新しました。 ':)' –
あなたは簡単のようなメソッドを持つことができます:あなたはnull
または空の文字列を挿入する場合は、あなたは以下のように0を返すいくつかのチェックを追加できることを望んでいないので、もしこれは、いくつかのエラーがスローされます
public static double compare(String string, String compareString){
int length = string.length();
int comLength = compareString.length();
int max = length;
int min = comLength;
int result = 0;
if (length < comLength){
max = comLength;
min = length;
}
for(int index = 0; index < min; index++){
if(string.charAt(index) == compareString.charAt(index)){
result++;
}
}
return (double)(result)/ (double)(max);
}
:
if(string.isEmpty()){
if(compareString.isEmpty()){
return 1;
}
return 0;
}else if(compareString.isEmpty()){
return 0;
}
などです。同様のロジックを使用してnulls
も防ぐことができます。
String a, b;
int count = 0;
for(int i = 0; i<13; i++){
if(a.charAt(i)==b.charAt(i)) count++;
}
System.out.println(count/13.0);
- 1. 類似の文字列をチェックする方法
- 2. 文字列の類似性を認識
- 3. のC# - 文字列の類似性に
- 4. ファイルの類似性の大文字と小文字を区別する方法
- 5. テキスト文字列の類似度を計算する方法は?
- 6. SPARQL:類似した文字列を見つける方法?
- 7. データベース内の多くの文字列の類似性
- 8. Pythonの文字列の比較の類似性
- 9. 与えられた文字列に類似した値の配列をチェックする方法は?
- 10. Powershell 2.0:ハッシュテーブルキーの文字列とのマッチングや類似方法
- 11. 文字列類似性を使用したレコード結合
- 12. 類似した文字列をグループ化
- 13. スカラ文字列の類似度
- 14. 文字列のSklearnコサイン類似度
- 15. シャッフルし、別の類似文字列
- 16. n個の文字列の間の文字列類似メトリック
- 17. マージとカウント類似文字列
- 18. アイデアの類似性を比較するアルゴリズム(文字列として)
- 19. 英数字の文字列で類似性をソートMS SQL Server 2012
- 20. データベース内の(類似した)文字列を検索するスケーラブルな方法
- 21. spark word2vecの例の説明と文字列の類似性を取得する方法
- 22. 類似性に関する2つのベクトル文字列の比較C++
- 23. リストのリストの最後のアイテムの類似性をチェックする
- 24. 2つの文字列を比較して類似度を求める方法
- 25. クロスサイトスクリプティング:文字列をチェックする方法
- 26. 2つの文字列の類似度を測定するアルゴリズム
- 27. C#類似の文字列を比較する
- 28. tsqlで類似の文字列を検索する
- 29. 類似した文字列を確実に見つける方法
- 30. javascriptで類似した文字列を一致させる方法
彼らは常になります同じ長さ? – MrB
あなたの文字列は常に同じ長さを持つように見えるので、異なるシンボルを数えるだけです。単純なループがその仕事をします。 – talex
私はいくつかのバグ修正のために私の答えを更新しました。 ':)' –