标签: string-comparison

如何在PowerShell中比较两个字符串对象的内容

在PowerShell中我有一个字符串对象数组,我有一个包含字符串对象的对象.在Java中,您可以执行a .equals(aObject)来测试字符串值是否匹配,而==如果两个对象引用内存中的相同位置则执行测试.

如何.equals(aObject)在powershell中运行等效项?

我这样做:

$arrayOfStrings[0].Title -matches $myObject.item(0).Title
Run Code Online (Sandbox Code Playgroud)

这两个都具有完全相同的字符串值,但我得到返回值false.有什么建议?

powershell string-comparison

38
推荐指数
2
解决办法
14万
查看次数

C# - 比较字符串相似度

可能重复:
是否有为C#编写的模糊搜索或字符串相似性函数库?

比较2个字符串以查看它们有多相似的最佳方法是什么?

例子:

My String
My String With Extra Words
Run Code Online (Sandbox Code Playgroud)

要么

My String
My Slightly Different String
Run Code Online (Sandbox Code Playgroud)

我要找的是确定每对中第一个和第二个字符串的相似程度.我想对比分进行评分,如果字符串足够相似,我认为它们是匹配对.

有没有一种很好的方法在C#中做到这一点?

.net c# string algorithm string-comparison

37
推荐指数
2
解决办法
3万
查看次数

StringComparison枚举的选项

我对StringComparison枚举的选项感到困惑.我只是想比较两个忽略大小写的字符串.有人可以解释当前文化,不变文化序数的含义吗?大多数用例是否有共同选项,如果有,在什么情况下需要其他选项?

作为参考,StringComparison枚举的选项如下:

  • 的CurrentCulture
  • CurrentCultureIgnoreCase
  • InvariantCulture的
  • InvariantCultureIgnoreCase
  • 序数词
  • OrdinalIgnoreCase

.net c# string .net-4.0 string-comparison

37
推荐指数
1
解决办法
9806
查看次数

C++将char数组与字符串进行比较

我正在尝试将字符数组与字符串进行比较,如下所示:

const char *var1 = " ";
var1 = getenv("myEnvVar");

if(var1 == "dev")
{
   // do stuff
}
Run Code Online (Sandbox Code Playgroud)

这个if语句永远不会被验证为真......当我输出var1时它是"dev",我想也许它与空终止字符串有关,但是"dev"和var1的strlen是相等的...我也可能认为var1 =="dev"将"dev"与var1的内存位置进行比较而不是值.*var1 =="dev"导致错误....尝试了很多东西,可能是saavy c ++开发人员的简单解决方案(我没有在一段时间内编写c ++).

编辑:我们试过了

if(strcmp(var1, "dev") == 0)
Run Code Online (Sandbox Code Playgroud)

if(strncmp(var1, "dev", 3) == 0)
Run Code Online (Sandbox Code Playgroud)

谢谢

编辑:在家测试后,我只是建议我的同事将数据类型更改为字符串.我相信他正在将一个大字母的char数组与一个字符串进行比较.我把一个输出sizeof,strlen等的程序放在一起,以帮助我们完成它.感谢大家的帮助.

c++ string string-comparison

36
推荐指数
2
解决办法
13万
查看次数

不同的字符串比较方法有什么区别

可能重复:
C#中字符串比较方法的差异

在.NET中有许多字符串比较方法,我只是想确认哪一个是最好的考虑性能.

string.Equals()

string.Compare()

string.CompareTo()

string.CompareOrdinal()

string.ReferenceEquals()

if (str1 == str2)
Run Code Online (Sandbox Code Playgroud)

.net c# string-comparison

36
推荐指数
1
解决办法
3万
查看次数

为什么"ss"等同于德国锋利人物'ß'?

从未来的这个问题,我不知道为什么äae是不同的(这是有道理的),但ßss视为相等.即使这个问题似乎是相关的,我也没有找到答案,甚至提到"这ß将与SS德国或类似的相提并论",但不是为什么.

我发现MSDN上唯一的资源是:如何:比较字符串

这里提到以下但也缺乏原因:

// "They dance in the street." 
// Linguistically (in Windows), "ss" is equal to 
// the German essetz: 'ß' character in both en-US and de-DE cultures. 
.....
Run Code Online (Sandbox Code Playgroud)

那么,为什么要truede-DE文化或任何其他文化进行评估:

var ci = new CultureInfo("de-DE");
int result = ci.CompareInfo.Compare("strasse", "straße", CompareOptions.IgnoreNonSpace); // 0
bool equals = String.Equals("strasse", "straße", StringComparison.CurrentCulture); // true
equals = String.Equals("strasse", …
Run Code Online (Sandbox Code Playgroud)

.net c# windows string string-comparison

34
推荐指数
1
解决办法
7011
查看次数

将字符串与空字符串进行比较(Java)

我有一个关于在Java中将字符串与空字符串进行比较的问题.有没有区别,如果我将字符串与空字符串比较==equals?例如:

String s1 = "hi";

if (s1 == "")
Run Code Online (Sandbox Code Playgroud)

要么

if (s1.equals("")) 
Run Code Online (Sandbox Code Playgroud)

我知道应该比较字符串(和一般的对象)equals,而不是==,但我想知道它是否对空字符串很重要.

java string comparison string-comparison

32
推荐指数
6
解决办法
7万
查看次数

bash,破折号和字符串比较

我试图在一个简单的shell脚本中比较两个字符串.我使用的是/bin/sh代替/bin/bash,经过无数小时的调试后,事实证明sh(实际上是破折号)无法处理这段代码:

if [ "$var" == "string" ]
then
    do something
fi
Run Code Online (Sandbox Code Playgroud)

什么是比较字符串使用的可移植方式/bin/sh?我知道我总是可以通过使用!=来做相反的事情,但我想知道一种更干净,更便携的方式.

bash string-comparison dash-shell

31
推荐指数
3
解决办法
3万
查看次数

匹配产品字符串的最佳机器学习技术

这是一个难题......

我有两个相同50000+电子产品的数据库,我想将一个数据库中的产品与另一个数据库中的产品相匹配.但是,产品名称并不总是相同的.我已经尝试使用Levenshtein距离来测量弦的相似性但是这没有用.例如,

-LG 42CS560 42-Inch 1080p 60Hz LCD HDTV
-LG 42 Inch 1080p LCD HDTV
Run Code Online (Sandbox Code Playgroud)

这些项目是相同的,但他们的产品名称变化很大.

另一方面...

-LG 42 Inch 1080p LCD HDTV
-LG 50 Inch 1080p LCD HDTV
Run Code Online (Sandbox Code Playgroud)

这些是具有非常相似产品名称的不同产品.

我该如何解决这个问题?

machine-learning pattern-matching string-comparison levenshtein-distance

31
推荐指数
2
解决办法
2万
查看次数

为什么默认字符串比较器无法保持传递一致性?

我知道之前已经注意到这个问题,或多或少简洁,但我仍然创建这个新线程,因为我在编写单元测试时再次遇到了这个问题.

默认的字符串比较(即文化相关的区分大小写的比较,我们得到有string.CompareTo(string),Comparer<string>.Default,StringComparer.CurrentCulture,string.Compare(string, string)等)违反及物当字符串包含连字符(或减号,我说的是普通的U + 002D字符).

这是一个简单的复制品:

static void Main()
{
  const string a = "fk-";
  const string b = "-fk";
  const string c = "Fk";

  Console.WriteLine(a.CompareTo(b));  // "-1"
  Console.WriteLine(b.CompareTo(c));  // "-1"
  Console.WriteLine(a.CompareTo(c));  // "1"

  var listX = new List<string> { a, b, c, };
  var listY = new List<string> { c, a, b, };
  var listZ = new List<string> { b, c, a, };
  listX.Sort();
  listY.Sort();
  listZ.Sort();
  Console.WriteLine(listX.SequenceEqual(listY));  // "False" …
Run Code Online (Sandbox Code Playgroud)

.net c# sorting string string-comparison

30
推荐指数
1
解决办法
1953
查看次数