标签: string-comparison

VB/VBA StrComp或=

如果有的话,使用的好处是什么

If StrComp(strVal1, strVal2, vbTextCompare) = 0 Then
Run Code Online (Sandbox Code Playgroud)

而不是使用

If strVal1 = strVal2 Then
Run Code Online (Sandbox Code Playgroud)

如果Option Compare Text设置在模块级别,有什么区别吗?

我知道StrComp处理空场景和<>场景,我只对strVal1和strVal2分配了非空有效字符串的情况感兴趣.

excel vba excel-vba string-comparison

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

JavaScript字符串比较随机失败

我随机地在我的JS应用程序中发生了一个非常奇怪的错误.基本上,脚本无法准确比较两个字符串.更具体地说,有时看不到两个相同的字符串相同:('blah' == 'blah')return false.

有趣的是,在另一次尝试中,相同的两个字符串可以被认为是相同的(语句返回true).我从未设法弄清楚这种模式.我也试过用===而不是==; 这没有用.

除了录制截屏视频之外,我想不出更好的方式来演示和证明这个荒谬的错误.所以这是:http://www.screenr.com/klOs.我继续为该视频中的每个测验给出正确的答案,但是接近结束时,我对"日本"和"台湾"的答案将被视为"错误"; 控制台还将显示给定的答案字符串,正确的答案字符串以及比较结果(false?!!).

那么这可能是造成这种奇怪行为的原因,我该如何解决这个问题呢?

您可以在截屏视频中看到带有比较语句的代码.'params.givenAnswer'直接来自按钮文字标签:

//*** Options for answering the card quiz
quizOptions = new Ext.Panel({
        id: 'quizOptions',
        […………]
        listeners: {
            el: {
                scope: this,
                tap: this.checkAnswer
            }
        }
});


checkAnswer: function(container, element) {

    // Get the text value of the button clicked
    var answer = Ext.fly(element).dom.innerText;

    Ext.dispatch({
        controller: 'Practice',
        action: 'checkAnswer',
        givenAnswer: answer
    }); 
},
Run Code Online (Sandbox Code Playgroud)

更新感谢@JAAulde和@Mike!我试图在日志记录中包含引号和var类型,我得到了这个结果:

在此输入图像描述

现在很明显为什么字符串比较失败了:第一个字符串中似乎有一个额外的换行符.它仍然非常奇怪,因为它在之前的日志记录中并没有显示为空白的新行,最重要的是,它随机出现在那里(注意这次"台湾"如何被接受而没有任何问题).

我为答案字符串添加了一个简单的换行符删除规则,现在一切似乎都运行正常.非常感谢大家!

javascript string string-comparison sencha-touch

7
推荐指数
1
解决办法
3491
查看次数

使用比较插件从命令行运行NotePad ++,显示比较结果

我试图找到一种方法从命令行调用notepad ++,比较插件显示比较结果,提供我传递2个文件名,我想比较.

想想我有一个批处理文件,它做了一些工作,结果是打开notepad ++在比较模式下显示2个文件.(是的,安装了比较插件)

如果有人有任何其他建议使用任何其他编辑或软件也欢迎..

compare notepad++ string-comparison

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

bash详细字符串比较斜杠

我在bash脚本中比较两个字符串如下:

x="hello"
y="hello"

if [[ "$x" != "$y" ]]; then
    echo "different"
else
    echo "same"
fi
Run Code Online (Sandbox Code Playgroud)

这种比较有效.当我执行脚本时-x,比较仍然有效,但它显示输出

+ x=hello
+ y=hello
+ [[ -n hello ]]
+ [[ hello != \h\e\l\l\o ]]
+ echo same
Run Code Online (Sandbox Code Playgroud)

我很好奇为什么弦的右侧显示为\h\e\l\l\o和不显示hello

bash string-comparison

7
推荐指数
1
解决办法
830
查看次数

在numpy数组中查找包含子字符串的条目?

我试图在包含带有np.where和条件的子字符串的数组中查找条目:

import numpy as np
foo = "aa"
bar = np.array(["aaa", "aab", "aca"])
np.where(foo in bar)
Run Code Online (Sandbox Code Playgroud)

这只返回一个空数组.
为什么会这样?
还有一个很好的替代解决方案吗?

numpy where string-comparison python-3.4

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

读外国人物

我有一个数据库,其中包含我正在阅读R(3.02)的英超足球运动员的名字,但是当涉及到名字中包含外国角色的球员(变音符号,口音等)时遇到了困难.下面的代码说明了这一点:

PlayerData<-read.table("C:\\Users\\Documents\\Players.csv",quote=NULL, dec = ".",,sep=",", stringsAsFactors=F,header=T,fill=T,blank.lines.skip = TRUE)
Test<-PlayerData[c(33655:33656),] #names of the players here are "Cazorla" "Özil"

Test[Test$Player=="Cazorla",] #Outputs correct details
Test[Test$Player=="Ozil",] # Can not find data '0 rows> (or 0-length row.names)'
<

#Example of how the foreign character is treated:
substr("Özil",1,1)
[1] "Ã"
substr("Özil",1,2)
[1] "Ö"
substr("Özil",2,2)
[1] "
substr("Özil",2,3)
[1] "z
Run Code Online (Sandbox Code Playgroud)

我已经尝试更换字符,如下所述:R:替换字符串中的外来字符,但由于我的示例中的重音字符似乎被读作两个单独的字符,我认为它不起作用.

我会很感激任何建议或解决方法.

该文件可在此处下载.

string encoding r character-encoding string-comparison

6
推荐指数
1
解决办法
517
查看次数

如何正确比较命令行参数?

我正在尝试编写一个在main中接受参数的C代码; 因此当我在cmd中写一些字符串时,程序会在其中执行某些操作.但我做错了什么,我找不到它.

这是代码:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char * argv[]){   //File name is main.c
    if(argc != 3)
        printf("Wrong!!!!!!!!!");
    else
        if (argv[1] == "-s")
            girls();  //Prints "Girls"
        else if(argv[1] == "-k")
            boys();   //Prints "Boys"
        else
            printf("OMG!!");
}
Run Code Online (Sandbox Code Playgroud)

在cmd;

gcc -o gender main.c

gender -s pilkington

我输入那些命令.总是输出

"我的天啊!!"

哪部分错了?

c string string-comparison strcmp command-line-arguments

6
推荐指数
1
解决办法
6086
查看次数

Umlaute的文化感知字符串比较

我需要用德语比较两个字符串,以检查它们是否相等,只是在使用umlaute时有所不同.例如"Jörg"应与"Joerg"相同.

所以我尝试过:

var ci = new CultureInfo("de-DE");
int compareResult = ci.CompareInfo.Compare("jörg", "joerg", CompareOptions.IgnoreNonSpace);
Run Code Online (Sandbox Code Playgroud)

以及

int compareResult = String.Compare("jörg", "joerg", true, ci);
Run Code Online (Sandbox Code Playgroud)

(或者那两个是平等的吗?)

但是,这不起作用并将返回1.所有的变形金刚ö,ü和ä都是一样的.如果我比较strassestraße以同样的方式,这确实有效并返回0?!

谢谢你的任何想法!这篇文章表明我应该工作.

c# string-comparison .net-4.5

6
推荐指数
1
解决办法
1845
查看次数

freemarker - 字符串比较 - 不允许运算符

我想比较两个字符串来判断第一个字符串是否比第二个字符串"更小".

<#if name1 <= name2>
....
</#if>
Run Code Online (Sandbox Code Playgroud)

错误:

Can't use operator "<=" on string values.
Run Code Online (Sandbox Code Playgroud)

这可以在FreeMarker中完成吗?是否可以String.compareTo在模板中调用该方法?

java freemarker string-comparison

6
推荐指数
1
解决办法
3072
查看次数

String.Starts的性能使用StringComparison.OrdinalIgnoreCase

我用String.StartsWith遇到了一个奇怪的性能"工件".

使用OrdinalIgnoreCase的String.StartsWith似乎比使用String.StartsWith更快,而没有指定StringComparison.(快2-4倍)

但是,使用没有StringComparison的String.Equals比使用OrdinalIgnoreCase时更快地检查相等性.(虽然速度大致相同)

问题是为什么?为什么他们在这两种情况下表现不同?

这是我使用的代码:

    public static void Test()
    {
        var options = new[] { "asd/klfe", "qer/jlkfe", "p33/ji", "fkjlfe", "asd/23", "bleash", "quazim", "ujv/3", "jvd/kfl" };
        Random r;

        const int trialSize = 100000;
        const int trials = 1000;
        Stopwatch swEqOp = new Stopwatch();
        Stopwatch swEq = new Stopwatch();
        Stopwatch swEqOrdinal = new Stopwatch();
        Stopwatch swStartsWith = new Stopwatch();
        Stopwatch swStartsWithOrdinal = new Stopwatch();
        for (int i = 0; i < trials; i++)
        {
            {
                r = new Random(1);
                swEqOp.Start();
                for (int …
Run Code Online (Sandbox Code Playgroud)

c# string startswith string-comparison

6
推荐指数
1
解决办法
983
查看次数