相关疑难解决方法(0)

如何在Java中以不区分大小写的方式检查String是否包含另一个String?

说我有两个字符串,

String s1 = "AbBaCca";
String s2 = "bac";
Run Code Online (Sandbox Code Playgroud)

我想执行一个s2包含在其中的检查返回s1.我可以这样做:

return s1.contains(s2);
Run Code Online (Sandbox Code Playgroud)

我很确定这contains()是区分大小写的,但是我无法通过阅读文档来确定这一点.如果是,那么我想我最好的方法是这样的:

return s1.toLowerCase().contains(s2.toLowerCase());
Run Code Online (Sandbox Code Playgroud)

除此之外,还有另一种(可能更好的)方法来实现这一目标而不关心区分大小写吗?

java string

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

上与下案例

在进行不区分大小写的比较时,将字符串转换为大写或小写更有效吗?它甚至重要吗?

在这篇SO帖子中建议C#使用ToUpper更有效,因为"Microsoft以这种方式优化了它".但我也读过这个论点,转换ToLower与ToUpper取决于你的字符串包含的内容,并且通常字符串包含更多小写字符,这使得ToLower更有效.

特别是,我想知道:

  • 有没有办法优化ToUpper或ToLower,使一个比另一个更快?
  • 在大写或小写字符串之间进行不区分大小写的比较是否更快?为什么?
  • 是否存在任何编程环境(例如C,C#,Python等),其中一个案例明显优于另一个案例,为什么?

language-agnostic string uppercase

79
推荐指数
5
解决办法
4万
查看次数

用其全貌替换缩写/俚语

我使用HashMap存储缩写的完整表单.

public class Test {
    public static void main(String[] args) {
        Map<String, String> slangs = new HashMap<String, String>();
        slangs.put("lol", "laugh out loud");
        slangs.put("r", " are ");
        slangs.put("n", " and ");
        slangs.put("idk", " I don't know ");
        slangs.put("u", " you ");
        Set set = slangs.entrySet();
        Iterator i = set.iterator();

        String sentence = "lol how are you";
        StringBuilder sb = new StringBuilder();

        for (String word : sentence.split(" ")) {
            while(i.hasNext()) {
                Map.Entry<String, String> me = (Map.Entry)i.next();
                if (word.equalsIgnoreCase(me.getKey())) {
                    sb.append(me.getValue());
                    continue;
                } …
Run Code Online (Sandbox Code Playgroud)

java string hashmap

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

Java:比较字符数组区分大小写?

我正在编写一个程序来比较几个字符与Char数组并返回数组的索引.有没有可能比较忽略情况的方法?例如下面:

String in = "I AM A HAPPY BOY";
char[] cha = new char[] {a,c,e,g,i,k,h,m,o,q,s,u,w,y};
char testChar = in.substring(4,5).charAt(0);

for(int a = 0; a<char.length; a++){
   if(cha[a] == testChar)
       return a+1;
}
Run Code Online (Sandbox Code Playgroud)

我无法得到索引,因为它总是指向0.无论如何都要忽略这里的情况?感谢一些建议.

java

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

标签 统计

java ×3

string ×3

hashmap ×1

language-agnostic ×1

uppercase ×1