1,字符串条件操作 1.1比较字符串内容是否相等
-
String str = "hello"; -
System.out.println(str.equals("hello")); 输出:true 1.2比较字符串内容是否相等(忽略大小写)
-
String str = "hello"; -
System.out.println(str.equals("Hello")); -
System.out.println(str.equalsIgnoreCase("Hello")); 输出: false true 1.3判断字符串是否等于给定的正则表达式
-
String str = "hello"; -
System.out.println(str.matches("\\w+")); 输出为:true 此处应该注意,matches(String regex),参数必须是正则表达式 1.4判断字符串是否以指定的前缀开始,或者以后缀结束 指定后缀结束:
-
String str = "hello"; -
System.out.println(str.endsWith("o")); -
System.out.println(str.endsWith("lo")); -
System.out.println(str.endsWith("llo")); -
System.out.println(str.endsWith("lla"));
结果为: true true true false 指定前缀开始:
-
String str="hello"; -
System.out.println(str.startsWith("h")); -
System.out.println(str.startsWith("he")); -
System.out.println(str.startsWith("hel")); -
System.out.println(str.startsWith("hol")); 结果为: true true true false 在指定索引处是否以指定前缀开始
-
String str="hello"; -
System.out.println(str.startsWith("l",0)); -
System.out.println(str.startsWith("l",1)); -
System.out.println(str.startsWith("l",2)); -
System.out.println(str.startsWith("llo",2)); -
System.out.println(str.startsWith("llo",3)); 结果为: false false true true false 1.5判断字符串长度,以及字符串是否为空
-
String str1 = "hello"; -
String str2 = ""; -
System.out.println(str1.length()); -
System.out.println(str2.length()); -
System.out.println(str1.isEmpty()); -
System.out.println(str2.isEmpty()); 结果为: 5 0 false true 需要注意的是,""和null代表的含义是完全不一样的. String str=""在内存中是这样的: String str=null在内存中是这样的 由于null根本没有对应的堆内存空间,所以如果调用lenth()和isEmpty()方法,会出现空指针错误: Exception in thread "main" java.lang.NullPointerException 2,字符串切割(字符串数组),字符数组 2.1字符串切割成字符串数组形式
-
public class Test{ -
public static void main(String []args){ -
String str="hello everyone my name is simon"; -
String a[]=str.split(" "); -
for(int i=0;i<a.length;i++) -
System.out.println(a[i]); -
} -
} 结果为: hello everyone my name is simon 需要注意的是,split(String regex)参数必须是正则表达式! 2.2字符串拆分成字符数组形式
-
String str="hello everyone my name is simon"; -
char a[]=str.toCharArray(); -
for(int i=0;i<a.length;i++) -
System.out.println(a[i]); 输出为: h e l l o e v e r y o n e m y n a m e i s s i m o n 一丶String类 String 类本身由于其命名规范的要求肯定是一个类,但是却发现,此类在使用上较为特殊,而且发现在 String 类的操作中依然可以使用“+”或“+=”进行字符串的连接,还可以发现,各个数据类型的数据只要是碰到了 String 类的内容,则都统一向 String 进行转换,所以 String 类的使用及特点就非常的重要。 1,String的比较,涉及的常用函数为 equals(),equalsIgnoreCase()-------->比较String内容 compareTo(),compareToIgnoreCase()---------->比较String大小 regionMatches()-------->匹配子串
-
public class StringTest { -
public static void main(String[] args) { -
String a = "ABC"; -
String b = "abc"; -
String c = "abcdef"; -
// TODO Auto-generated method stub -
System.out.println(a.equals(b));//字符串内容比较 -
System.out.println(a.equalsIgnoreCase(b));//字符串内容比较,忽略大小写 -
-
System.out.println(a.compareTo(b));//比较字符串大小 -
System.out.println(a.compareToIgnoreCase(b));//比较字符串大小,忽略大小写 -
/** -
* 下述两个方法用来比较两个字符串中指定区域的子串。入口参数中,用toffset和ooffset分别指出当前字符串中的子串起始位置和要与之 -
* 比较的字符串中的子串起始地址;len 指出比较长度。前一种方法可区分大写字母和小写字母,如果在 boolean ignoreCase处写 true,表示 -
* 将不区分大小写,写false则表示将区分大小写。而后一个方法认为大小写字母有区别。由此可见,实际上前一个方法隐含了后一个方法的功能。 -
* 定义: -
* regionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len); -
regionMatches( int toffset,String other,int ooffset,int len); -
*/ -
System.out.println(c.regionMatches(0, a, 0, 3));//区分大小写 -
System.out.println(c.regionMatches(false,0, a, 0, 3));//同上 -
System.out.println(c.regionMatches(true,0,a, 0, 3));//不区分大小写 -
} -
-
}
对应的输出应该是: false true -32 0 false false true 2,String的截取,常用函数为 public String subString(int begin)---->返回一个新的字符串从begin开始 public String subString(int begin,int end)---->返回的字符串是从begin开始长度为end-begin的串 注意:比如有一个字符串abcdef,那么a位置是0,b位置是1,依次类推,f是5,该字符串长度为6.
-
public class StringTest { -
public static void main(String[] args) { -
String a = "ABC"; -
String b = "abc"; -
String c = "abcdef"; -
System.out.println(a.substring(0));//结果ABC -
System.out.println(a.substring(1));//结果BC -
System.out.println(a.substring(2));//结果C -
System.out.println(c.substring(0, 4));//结果abcd -
System.out.println(c.substring(1, 4));//结果bcd -
} -
} split()函数是一个常用函数,去掉特定字符串,其余字符串作为数组返回.
-
public class StringTest { -
public static void main(String[] args) { -
String c = "abkefksdfksfwekwww"; -
-
String []s1 = c.split("k"); -
for(int i=0;i<s1.length;i++) -
System.out.println(s1[i]); -
-
} -
} 结果为: ab ef sdf sfwe www |