日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java怎么查找字符串大写_在Java中,如何检查字符串是否包含子字符串(忽略大小写)?...

發布時間:2024/4/11 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java怎么查找字符串大写_在Java中,如何检查字符串是否包含子字符串(忽略大小写)?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本問題已經有最佳答案,請猛點這里訪問。

我有兩個String s,str1和str2。 如何檢查str1是否包含在str1中,忽略大小寫?

indexOf和contains都是逐個字符的,所以如果你需要更快的字符串搜索(你可以得到),那么你需要實現許多已發布的算法之一。

我有同樣的問題,這里是答案:) stackoverflow.com/a/86832/621951

str1.toLowerCase().contains(str2.toLowerCase())

出于某種原因,當我打電話給"2014-03-25T17:55:00"時,我會變得虛假.contains("T")

是否有返回的函數和包含(str2)的位置?

@RadijatoR是的,它被稱為indexOf,如int pos = str1.indexOf(str2)或不區分大小寫int pos = str1.toLowerCase().indexOf(str2.toLowerCase())

似乎現在正在工作。不知道之前發生了什么。相同的代碼。

@frostymarvelous我有同樣的問題,java中的錯誤...我試圖將"成功"與"成功"匹配.toLowerCase(),將失敗,將其更改為"ccess"然后它起作用。很奇怪。奇怪的是,匹配"SUCCESS"和"Successful".toUpperCase()也有效

@Fonix是str1,是str2?

@frostymarvelous"成功"是str 1,所以它是"Successful".toLowerCase().contains("success");("成功"是我從服務器的json響應中得到的變量)

@JeremyList ideone.com/weYI1e打印true。

@JeremyList它打印為true

matches()怎么樣?

String string ="Madam, I am Adam";

// Starts with

boolean ?b = string.startsWith("Mad"); ?// true

// Ends with

b = string.endsWith("dam"); ? ? ? ? ? ? // true

// Anywhere

b = string.indexOf("I am") >= 0; ? ? ? ?// true

// To ignore case, regular expressions must be used

// Starts with

b = string.matches("(?i)mad.*");

// Ends with

b = string.matches("(?i).*adam");

// Anywhere

b = string.matches("(?i).*i am.*");

您的"indexOf"示例應使用> = 0,而不是> 0,因為如果子字符串出現在字符串的開頭,則0有效。 (不是在你的例子中,但在其他情況下可以。)添加了這個響應,因為人們顯然仍在搜索并找到這個答案。

如果你能夠使用org.apache.commons.lang.StringUtils,我建議使用以下內容:

String container ="aBcDeFg";

String content ="dE";

boolean containerContainsContent = StringUtils.containsIgnoreCase(container, content);

您可以使用toLowerCase()方法:

public boolean contains( String haystack, String needle ) {

haystack = haystack == null ?"" : haystack;

needle = needle == null ?"" : needle;

// Works, but is not the best.

//return haystack.toLowerCase().indexOf( needle.toLowerCase() ) > -1

return haystack.toLowerCase().contains( needle.toLowerCase() )

}

然后用以下方法調用:

if( contains( str1, str2 ) ) {

System.out.println("Found" + str2 +" within" + str1 +"." );

}

請注意,通過創建自己的方法,您可以重用它。然后,當有人指出你應該使用contains而不是indexOf時,你只需要改變一行代碼。

記得在傳遞null對象時添加有關行為的Javadoc。

解決方案幫助:)

我也贊成RegEx解決方案。代碼會更清晰。在我知道字符串變得很大的情況下,我會毫不猶豫地使用toLowerCase(),因為字符串是不可變的并且必須被復制。此外,matches()解決方案可能會令人困惑,因為它將正則表達式作為參數(搜索"Need $ le"冷卻有問題)。

基于上面的一些例子:

public boolean containsIgnoreCase( String haystack, String needle ) {

if(needle.equals(""))

return true;

if(haystack == null || needle == null || haystack .equals(""))

return false;

Pattern p = Pattern.compile(needle,Pattern.CASE_INSENSITIVE+Pattern.LITERAL);

Matcher m = p.matcher(haystack);

return m.find();

}

example call:

String needle ="Need$le";

String haystack ="This is a haystack that might have a need$le in it.";

if( containsIgnoreCase( haystack, needle) ) {

System.out.println("Found" + needle +" within" + haystack +"." );

}

(注意:根據您的需要,您可能希望以不同的方式處理NULL和空字符串。我認為我的方式更接近字符串的Java規范。)

速度關鍵解決方案可以包括通過字符迭代干草堆字符尋找針的第一個字符。當第一個字符匹配時(不區分大小寫),開始逐個字符地迭代針,在大海撈針中查找相應的字符,如果所有字符都匹配則返回"true"。如果遇到不匹配的字符,則通過下一個字符的haystack繼續迭代,如果達到position> haystack.length() - needle.length()則返回"false"。

我愿意:Pattern.CASE_INSENSITIVE|Pattern.LITERAL

@mikejones我怎樣才能檢查這個單詞?考慮下面的情況1)"這是一個可能需要$ le的大海撈針。"; 2)"這是一個大海撈針,可能需要少量的東西。";我只希望案例1匹配,因為在這種情況下需要$ le作為單詞出現。我不希望第二種情況匹配。我怎樣才能做到這一點?

我將使用contains方法和toUpper方法的組合,它們是String類的一部分。一個例子如下:

String string1 ="AAABBBCCC";

String string2 ="DDDEEEFFF";

String searchForThis ="AABB";

System.out.println("Search1="+string1.toUpperCase().contains(searchForThis.toUpperCase()));

System.out.println("Search2="+string2.toUpperCase().contains(searchForThis.toUpperCase()));

這將返回:

Search1=true

Search2=false

不行。轉換為大寫/小寫時,一些奇怪的國際字符會轉換為多個字符。例如:"?".toUpperCase().equals("SS")

那就好了。這就是用德語寫雙s的方式。

總結

以上是生活随笔為你收集整理的Java怎么查找字符串大写_在Java中,如何检查字符串是否包含子字符串(忽略大小写)?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。