LIKE和其他比较运算符=等的默认行为区分大小写.
是否有可能使它们不区分大小写?
我的产品型号包含一些商品
Product.first
=> #<Product id: 10, name: "Blue jeans" >
Run Code Online (Sandbox Code Playgroud)
我现在从另一个数据集导入一些产品参数,但名称的拼写有不一致之处.例如,在其他数据集中,Blue jeans可以拼写Blue Jeans.
我想Product.find_or_create_by_name("Blue Jeans"),但这将创造一个新产品,几乎与第一个相同.如果我想找到并比较小写的名字,我有什么选择.
性能问题在这里并不重要:只有100-200个产品,我想将其作为导入数据的迁移来运行.
有任何想法吗?
如何使下面的行不区分大小写?
drUser["Enrolled"] =
(enrolledUsers.FindIndex(x => x.Username == (string)drUser["Username"]) != -1);
Run Code Online (Sandbox Code Playgroud)
我今天早些时候给了我一些建议,建议我使用:
x.Username.Equals((string)drUser["Username"], StringComparison.OrdinalIgnoreCase)));
Run Code Online (Sandbox Code Playgroud)
麻烦的是我不能让这个工作,我已经尝试了下面的行,这个编译但返回错误的结果,它返回注册用户作为注册的未注册和未注册的用户.
drUser["Enrolled"] =
(enrolledUsers.FindIndex(x => x.Username.Equals((string)drUser["Username"],
StringComparison.OrdinalIgnoreCase)));
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出这个问题吗?
我有一个字符串数组,我需要在JavaScript中排序,但不区分大小写.怎么做?
我想使用不区分大小写的字符串作为HashMap键,原因如下.
<key, value>从HashMap中找到忽略我从流量中收到的情况.我遵循了这种方法
CaseInsensitiveString.java
public final class CaseInsensitiveString {
private String s;
public CaseInsensitiveString(String s) {
if (s == null)
throw new NullPointerException();
this.s = s;
}
public boolean equals(Object o) {
return o instanceof CaseInsensitiveString &&
((CaseInsensitiveString)o).s.equalsIgnoreCase(s);
}
private volatile int hashCode = 0;
public int hashCode() {
if (hashCode == 0)
hashCode = s.toUpperCase().hashCode();
return hashCode;
}
public String toString() {
return s;
}
}
Run Code Online (Sandbox Code Playgroud)
LookupCode.java
node = nodeMap.get(new CaseInsensitiveString(stringFromEvent.toString()));
Run Code Online (Sandbox Code Playgroud)
因此,我正在为每个事件创建一个CaseInsensitiveString的新对象.因此,它可能会影响性能.
有没有其他方法可以解决这个问题?
是否可以确定String是否str1="ABCDEFGHIJKLMNOP"包含字符串模式strptrn="gHi"?我想知道当角色不区分大小写时是否可能.如果是这样,怎么样?
我知道以下是区分大小写的:
if (StringA == StringB) {
Run Code Online (Sandbox Code Playgroud)
那么有一个运算符会以不敏感的方式比较两个字符串吗?
我有一个db表说,persons在Postgres中由另一个有列名称的团队传下来,"first_Name".现在我正在尝试使用PG指令器在此列名称上查询此表.
select * from persons where first_Name="xyz";
Run Code Online (Sandbox Code Playgroud)
它只是回归
错误:列"first_Name"不存在
不确定我是在做一些愚蠢的事情,还是我找不到这个问题的解决方法?
我喜欢用这个表达方式
if 'MICHAEL89' in USERNAMES:
...
Run Code Online (Sandbox Code Playgroud)
USERNAMES列表在哪里
有没有办法匹配不区分大小写的项目或我需要使用自定义方法?只是想知道是否需要为此编写额外的代码.
谢谢大家!
case-insensitive ×10
string ×4
c# ×2
java ×2
python ×2
sql ×2
.net ×1
activerecord ×1
contains ×1
dictionary ×1
identifier ×1
javascript ×1
list ×1
operators ×1
oracle ×1
postgresql ×1
sorting ×1
sql-like ×1