java子串
Ⅰ java中如何判斷一個字元串是否為另一個字元串的子串
indexOf(String s)的使用,如果包含,返回的值是包含該子字元串在父類字元串中起始位置;如果不包含必定全部返回值為-1。
代碼如下:
package my_automation;
public class z_test {
public static void main(String[] args) {
String test = "This is test for string";
System.out.println(test.indexOf("This")); //0
System.out.println(test.indexOf("is")); //2
System.out.println(test.indexOf("test")); //8
System.out.println(test.indexOf("for")); //13
System.out.println(test.indexOf("for string "));//-1
if (test.indexOf("This")!=-1){
//"只要test.indexOf('This')返回的值不是-1說明test字元串中包含字元串'This',相反如果包含返回的值必定是-1"
System.out.println("存在包含關系,因為返回的值不等於-1");
}else{
System.out.println("不存在包含關系,因為返回的值等於-1");
}
if (test.indexOf("this")!=-1){
//"只要test.indexOf('this')返回的值不是-1說明test字元串中包含字元串'this',相反如果包含返回的值必定是-1"
System.out.println("存在包含關系,因為返回的值不等於-1");
}else{
System.out.println("不存在包含關系,因為返回的值等於-1");
}
}
(1)java子串擴展閱讀
java string中indexOf()常用用法
Java中字元串中子串的查找共有四種方法,如下:
1、int indexOf(String str) :返回第一次出現的指定子字元串在此字元串中的索引。
2、int indexOf(String str, int startIndex):從指定的索引處開始,返回第一次出現的指定子字元串在此字元串中的索引。
3、int lastIndexOf(String str) :返回在此字元串中最右邊出現的指定子字元串的索引。
4、int lastIndexOf(String str, int startIndex) :從指定的索引處開始向後搜索,返回在此字元串中最後一次出現的指定子字元串的索引。
public class Test {
public static void main(String[] args) {
String s = "xXccxxxXX";
// 從頭開始查找是否存在指定的字元 //結果如下
System.out.println(s.indexOf("c")); //2
// 從第四個字元位置開始往後繼續查找,包含當前位置
System.out.println(s.indexOf("c", 3)); //3
//若指定字元串中沒有該字元則系統返回-1
System.out.println(s.indexOf("y")); //-1
System.out.println(s.lastIndexOf("x")); //6
System.out.println(s.indexOf(120,2)); //4
System.out.println(s.indexOf('x',2)); //4 120是x的ASCII編碼
}
}
Ⅱ java 如何查找子串
#########################################
indexOf
public int indexOf(String str)返回第一次出現的指定子字元串在此字元串中的索引。返回的整數是
this.startsWith(str, k)
為 true 的最小值 k。
參數:
str - 任意字元串。
返回:
如果字元串參數作為一個子字元串在此對象中出現,則返回第一個這樣的子字元串的第一個字元的索引;如果它不作為一個子字元串出現,則返回 -1。
######################################################
substring
public String substring(int beginIndex)返回一個新的字元串,它是此字元串的一個子字元串。該子字元串始於指定索引處的字元,一直到此字元串末尾。
例如:
"unhappy".substring(2) returns "happy"
"Harbison".substring(3) returns "bison"
"emptiness".substring(9) returns "" (an empty string)
參數:
beginIndex - 開始處的索引(包括)。
返回:
指定的子字元串。
拋出:
IndexOutOfBoundsException - 如果 beginIndex 為負或大於此 String 對象的長度。
#####################################################
不知道你具體的意思,應該用這2個方法,可以知道字串的位置,或取子字元串。
你可以參考JAVA API ,另外JAVA中不叫函數,叫方法。:)
Ⅲ java 實現 一個字元串中不重復最長子串
/**注意:如果一個函數有多個長度相等的不重復子串,本函數只能得到其中的第一個子串,
*如果要輸出所有子串,稍作修改即可
*/
publicstaticStringnoDuplicate(Strings){
/**
*這個函數返回給定字元串中最長不重復子串採用類似紙牌游戲拖板車的思維
*/
Stringresult="";//記錄最終結果,即最長子串
Stringsub="";//記錄當前紙牌串
for(inti=1;i<s.length();i++){//一張張發牌
Stringc=""+s.charAt(i);//當前新發下來的牌
if(!sub.contains(c)){//如果當前紙牌串中不包含新發的牌
sub+=c;//將新牌加入當前紙牌串
}else{//如果當前紙牌串中包含新發的牌
if(result.length()<sub.length()){//如果當前子串比最優記錄長
result=sub;//更新最優記錄
}
String[]temp=sub.split(c);//將子串按當前牌分割為兩部分
sub=temp[1];//取後一部分作新的當前紙牌串,丟棄重復牌及其前面部分
sub+=c;//將新牌加入當前紙牌串
}
}
//比較最後一個當前紙牌串與最優記錄
if(result.length()<sub.length()){//如果當前子串比最優記錄長
result=sub;//更新最優記錄
}
returnresult;
}