Java在長(zhǎng)字符串中查找短字符串的實(shí)現(xiàn)多種方法
方案一:
補(bǔ)充:在輸入短字符串時(shí),如果有空格,可以在比較前用 trim()方法截取前后空白
/*該方法只適用于有特殊分割符號(hào)的字符串*/
System.out.println("請(qǐng)輸入字符串:");
Scanner str1=new Scanner(System.in);
String s=str1.nextLine();
System.out.println("請(qǐng)輸入第二個(gè)字符串:");
Scanner str2=new Scanner(System.in);
String s2=str2.next();
String[] i= s.split(" ");//對(duì)長(zhǎng)字符串進(jìn)行分割得到一個(gè)字符串?dāng)?shù)組
int o=0;
for (int j = 0; j <i.length ; j++) {
if (s2.equals(i[j])==true){//對(duì)字符數(shù)組進(jìn)行遍歷比較
o++;
}
}
System.out.println("次數(shù)為:"+o);
}
方案二:
//如果替換未造成字符串長(zhǎng)度損失,該方法則不適用
System.out.println("請(qǐng)輸入一個(gè)長(zhǎng)字符串:");
Scanner str1 = new Scanner(System.in);
String s = str1.nextLine();
System.out.println("請(qǐng)輸入短字符串:");
String s1 = str1.nextLine();
String s3 = s.replaceAll(s1, "0");//字符替換
int b1 = s.length() - s3.length();//計(jì)算出s字符串損失的長(zhǎng)度
int b2 = b1 / (s1.length() - 1);//根據(jù)規(guī)律計(jì)算出s1字符串在s字符串中出現(xiàn)的次數(shù)
System.out.println("次數(shù)為:"+b2);
方案三:
//該方法適用于各種模式
System.out.println("請(qǐng)輸入一個(gè)長(zhǎng)字符串:");
Scanner str1 = new Scanner(System.in);
String s = str1.nextLine();
System.out.println("請(qǐng)輸入短字符串:");
String s1 = str1.nextLine();
int c=0;
for (int i = 0; i <s.length()-s1.length() ; i++) {
if (s1.equals(s.substring(i,i+s1.length()))){/*字符串比較,對(duì)長(zhǎng)字符串進(jìn)行截取,之后用截取得到的字符串與短字符串進(jìn)行比較*/
++c;
}
}
System.out.println("次數(shù)為: " + c);
到此這篇關(guān)于Java在長(zhǎng)字符串中查找短字符串的實(shí)現(xiàn)多種方法的文章就介紹到這了,更多相關(guān)Java 查找字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot如何實(shí)現(xiàn)同域SSO(單點(diǎn)登錄)
單點(diǎn)登錄(SingleSignOn,SSO),就是通過用戶的一次性鑒別登錄。即在多個(gè)應(yīng)用系統(tǒng)中,只需要登錄一次,就可以訪問其他相互信任的應(yīng)用系統(tǒng),本文將介紹SpringBoot如何實(shí)現(xiàn)同域SSO(單點(diǎn)登錄)2021-05-05
SpringBoot實(shí)現(xiàn)發(fā)送郵件任務(wù)
這篇文章主要為大家詳細(xì)介紹了SpringBoot實(shí)現(xiàn)發(fā)送郵件任務(wù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
mybatis中BigDecimal中的0存為null的坑及解決
在使用MyBatis進(jìn)行數(shù)據(jù)庫操作時(shí),若Java中屬性類型為BigDecimal且值為0,插入數(shù)據(jù)庫時(shí)可能會(huì)變?yōu)閚ull,而不是0,這個(gè)問題可能是由于MyBatis在處理BigDecimal類型時(shí)的弱類型判斷導(dǎo)致的,當(dāng)BigDecimal變量與空字符串進(jìn)行比較時(shí),MyBatis可能將其視為null2024-10-10
JDK8通過Stream 對(duì)List,Map操作和互轉(zhuǎn)的實(shí)現(xiàn)
這篇文章主要介紹了JDK8通過Stream 對(duì)List,Map操作和互轉(zhuǎn)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
SpringBoot靜態(tài)資源與首頁配置實(shí)現(xiàn)原理深入分析
最近在做SpringBoot項(xiàng)目的時(shí)候遇到了“白頁”問題,通過查資料對(duì)SpringBoot訪問靜態(tài)資源做了總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-10-10
spring boot+spring cache實(shí)現(xiàn)兩級(jí)緩存(redis+caffeine)
這篇文章主要介紹了spring boot+spring cache實(shí)現(xiàn)兩級(jí)緩存(redis+caffeine),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02

