JAVA中如何判断一个字符串是不是为另一个字符串的子串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中如何判断一个字符串是不是为另一个字符串的子串相关的知识,希望对你有一定的参考价值。
比如 两个字符串分别为"takecatb"和"te"如何判断?
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");
扩展资料
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编码
参考技术A String类中有一个方法 public boolean contains(Sting s)就是用来判断当前字符串是否含有参数指定的字符串
例
s1=“takecatb”
s2=“te”
语句:s1.contains(s2) //s1调用这个方法
若其值为ture说明s1包含s2 若为fasle 则不包含本回答被提问者采纳 参考技术B LS的是系统自带的方法,可行
你也可以用subString()根据你的字符个数分段截取也可以做到。 参考技术C 实现你这个要求,String类至少有四种方法能做到:
contains、matches、regionMatches、indexOf。
好好学一下API吧。 参考技术D hanzsim正解
java如何做到判断一个字符串是不是是数字。
字符串中可以使这一组,135.555或者是5654415都行反正中间不能有有英文,如果有就返回false。也不可以使这种格式135.546.546
楼主看方法:public class NumberDemo
public static void main(String[] args)
String str1="1122.2.2";
String str2="111";
String str3="111.2";
String str4="111s";
String str5="111.s";
String str6="1s11";
System.out.println(str1+":"+isNum(str1));
System.out.println(str2+":"+isNum(str2));
System.out.println(str3+":"+isNum(str3));
System.out.println(str4+":"+isNum(str4));
System.out.println(str5+":"+isNum(str5));
System.out.println(str6+":"+isNum(str6));
public static boolean isNum(String str)
return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");
结果:
1122.2.2:false
111:true
111.2:true
111s:false
111.s:false
1s11:false 参考技术A 如果只是判断,可与用integer.parseint(string)如果是数字,就没有异常,如果有异常,就不是数字
或者用正则表达式
return
string.matches("\\d+\\.?\\d*"));
这个语句就是用来判断的
\\d+表示一个或者多个数字
\\.?
表示一个或这没有小数点
\\d
*
表示0个或者多个数字 参考技术B 正则表达式最好了
public static void main(String[] args)
String str = "135555";
final String reg ="\\d+\\.0,1\\d*";
boolean isDigits = str.matches(reg);
System.out.println(isDigits);
参考技术C 这个可以使用正则表达式^[0-9]*$来判断 参考技术D String s = "safdj123";
boolean isNaN = true;
try
Long testlong = new Long(s);
catch (Exception e)
isNaN = false;
if(isNaN)
System.out.println("恭喜 这还真是个数字!");
else
System.out.println("555 这还真不是一个数字");
以上是关于JAVA中如何判断一个字符串是不是为另一个字符串的子串的主要内容,如果未能解决你的问题,请参考以下文章