标签: startswith

确定字符串是否以字母A到I开头

我有一个简单的java任务.我需要确定字符串是否以字母A到I开头.我知道我必须使用string.startsWith(); 但我不想写,if(string.startsWith("a"));一直到我,似乎在高效.我应该使用某种循环吗?

java letter startswith

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

当下一个字符是Prime符号(char)697时,String.StartsWith not working

我正在尝试使用带有Prime符号的字符串,但我遇到了String.StartsWith方法的一些问题.为什么以下代码抛出异常?

string text_1 = @"123456";
string text_2 = @"?ABCDEF";

string fullText = text_1 + text_2;
if (!fullText.StartsWith(text_1))
{
    throw new Exception("Unexplained bad error.");
}
Run Code Online (Sandbox Code Playgroud)

我怀疑这个问题是因为这个Prime符号(char)697被视为重音,因此正在改变它之前的字母.(我不认为它应该是 - 它应该是主要符号,所以不应该改变它前面的数字).我不确定如何测试这个.我确实尝试了这个答案中提出的方法,但它返回false:

IsLetterWithDiacritics(text_1[5]) //  == False
IsLetterWithDiacritics(fullText[5]) // == False
IsLetterWithDiacritics(fullText[6]) // == False
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

c# string escaping startswith diacritics

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

为什么T-SQL"LIKE"运算符不像我认为的那样评估这个表达式?

我试图通过确保变量的值前缀为括号"["来错误捕获T-SQL变量名称.

以下是我尝试执行此操作的示例:

DECLARE @thing nvarchar(20)
SET @thing = '[55555'
IF(@thing NOT LIKE '[' + '%') --If the value does not start with [ then add it
BEGIN
SET @thing = '[' + @thing
END
PRINT @thing
Run Code Online (Sandbox Code Playgroud)

PRINT上面的例子 [[55555

请注意,@ thing的原始值以括号"["为前缀.我原以为IF条件会因此而返回false"[55555" is LIKE '[' + '%'

为什么IF条件不返回false?更重要的是,我想,检查变量字符串值开头是否存在字符串的正确语法是什么?

编辑 看来,括号"["有一些特殊之处.当我在支架上运行LIKE时,它不能达到我的预期,但是当我不使用支架时,LIKE按照我的预期工作.

看看这些例子:

IF('[' NOT LIKE '[')
BEGIN
PRINT '[ is NOT LIKE ['
END
ELSE
BEGIN
PRINT '[ is LIKE ['
END

IF('StackO' NOT LIKE 'StackO')
BEGIN
PRINT 'STACKO is NOT LIKE …
Run Code Online (Sandbox Code Playgroud)

t-sql syntax startswith sql-like

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

为什么这个字符串("'Abdul-Baha'"^^ mso:text @ de)不以"?"开头?

"\"?Abdul-Baha'\"^^mso:text@de".StartsWith("\"") // is false
"\"Abdul-Baha'\"^^mso:text@de".StartsWith("\"") // is true
(int)'?' // is 703`
Run Code Online (Sandbox Code Playgroud)

有谁能告诉我为什么?

c# string startswith char

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

查找键以相同前缀开头的字典值的更有效方法

我有一个字典,其密钥以共享相同前缀的集合形式出现,如下所示:

d = { "key1":"valA", "key123":"valB", "key1XY":"valC",
      "key2":"valD", "key2-22":"valE" }
Run Code Online (Sandbox Code Playgroud)

给定一个查询字符串,我需要查找与以该前缀开头的键相关联的所有值,例如query="key1"我需要获取["valA", "valB", "valC"]

我的下面的实现工作,但对于大量的查询来说太慢了,因为字典d有大约30,000个键,大多数键的长度超过20个字符:

result = [d[s] for s in d.keys() if s.startswith(query)]
Run Code Online (Sandbox Code Playgroud)

是否有更快/更有效的方法来实现这一点?

python lookup performance dictionary startswith

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

在pandas dataframe中以相同字符串开头的列的值的总和

我有一个大约100列的数据框,看起来像

   Id  Economics-1  English-107  English-2  History-3  Economics-zz  Economics-2  \
0  56          1            1          0        1       0           0   
1  11          0            0          0        0       1           0   
2   6          0            0          1        0       0           1   
3  43          0            0          0        1       0           1   
4  14          0            1          0        0       1           0   

   Histo      Economics-51      Literature-re         Literatureu4  
0           1            0           1                0  
1           0            0           0                1  
2           0            0           0                0  
3           0            1           1                0  
4           1            0           0                0  
Run Code Online (Sandbox Code Playgroud)

所以我的目标是只留下更多的全球类别:只有英语,历史,文学,并在这些数据帧中写出其组成部分的总和,例如英语:英语-107,英语-2

    Id …
Run Code Online (Sandbox Code Playgroud)

python startswith dataframe pandas

6
推荐指数
2
解决办法
4348
查看次数

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
查看次数

如何返回 Elasticsearch 中字段以特定字母或多个字母开头的结果?

我有一些数据,例如

"last_name": "AA-WEST"
"last_name": "VANDER AA"
"last_name": "ARENDES-AA"
Run Code Online (Sandbox Code Playgroud)

我试图只获取以a, ie开头的名称AA-WESTARENDES-AA

我试过了

"match": {
    "last_name": {
        "query": "a",
        "operator": "and"
    }
}
Run Code Online (Sandbox Code Playgroud)

"prefix": {
    "last_name": { "value" : "a" }
}
Run Code Online (Sandbox Code Playgroud)

"match_phrase_prefix": {
    "last_name.keyword": {
        "query": "a"
    }
}
Run Code Online (Sandbox Code Playgroud)

所有这些都将返回所有名称,不仅是真正以a

有任何想法吗?

startswith elasticsearch

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

当 cols = 任何以特定前缀开头的列时,如何使用 tidyr hub_longer

每周,我都会收到一个原始数据集,我需要从中生成报告。我想编写一个每周都能运行的 R 脚本。不幸的是,根据收集的样本,原始数据每周的列组略有不同。这是每周的情况的示例。

library(readr)
w1 <- read_csv("species, males, females - fed, females - unfed
a,2,0,3
b,5,7,2
c,8,4,9")
w2 <- read_csv("species, males, females - mixed
a,2,0
b,5,7
c,8,4")

> w1
# A tibble: 3 x 4
  species males `females - fed` `females - unfed`
  <chr>   <dbl>           <dbl>             <dbl>
1 a           2               0                 3
2 b           5               7                 2
3 c           8               4                 9
> w2
# A tibble: 3 x 3
  species males `females - mixed`
  <chr>   <dbl>             <dbl>
1 a …
Run Code Online (Sandbox Code Playgroud)

select r names startswith dplyr

5
推荐指数
1
解决办法
4958
查看次数

如何在 SparkstartsWith() 函数中提供多个条件?

我有一个包含 500 万条记录的数据集,我需要使用提供多个或和条件来替换列中的所有值startsWith()

此代码适用于单一条件:

df2.withColumn("Deposits", when(col("Deposits").startsWith("0"),"1.1").otherwise(col("Deposits"))).show()
Run Code Online (Sandbox Code Playgroud)

我需要这样做:

df2.withColumn("Deposits", when(col("Deposits").startsWith("0"||"1"),"1.1").otherwise(col("Deposits")))
Run Code Online (Sandbox Code Playgroud)

scala startswith apache-spark apache-spark-sql

5
推荐指数
1
解决办法
2321
查看次数