我有一个简单的java任务.我需要确定字符串是否以字母A到I开头.我知道我必须使用string.startsWith(); 但我不想写,if(string.startsWith("a"));一直到我,似乎在高效.我应该使用某种循环吗?
我正在尝试使用带有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)
谢谢你的帮助.
我试图通过确保变量的值前缀为括号"["来错误捕获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) "\"?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)
有谁能告诉我为什么?
我有一个字典,其密钥以共享相同前缀的集合形式出现,如下所示:
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)
是否有更快/更有效的方法来实现这一点?
我有一个大约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) 我用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) 我有一些数据,例如
"last_name": "AA-WEST"
"last_name": "VANDER AA"
"last_name": "ARENDES-AA"
Run Code Online (Sandbox Code Playgroud)
我试图只获取以a, ie开头的名称AA-WEST和ARENDES-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
有任何想法吗?
每周,我都会收到一个原始数据集,我需要从中生成报告。我想编写一个每周都能运行的 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) 我有一个包含 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) startswith ×10
c# ×3
string ×3
python ×2
apache-spark ×1
char ×1
dataframe ×1
diacritics ×1
dictionary ×1
dplyr ×1
escaping ×1
java ×1
letter ×1
lookup ×1
names ×1
pandas ×1
performance ×1
r ×1
scala ×1
select ×1
sql-like ×1
syntax ×1
t-sql ×1