java中string 字符的比较和切分(代码详解)
给正在埋头学习java的同学!
package com.owlHome;
public class Comparisons {
public static void main(String[] args) {
//直接比较字符串是比较字符串的物理地址。
String s1 = "Welcome to java";
String s2 = new String("Welcome to java");
//因为之前已经创立了s1这一个物理地址,所以系统检测的时候首选的是s1,故s1 == s3.
String s3 = "Welcome to java";
String s4 = "welcome to java";
String s5 = "Welcome";
String s6 = " to";
String s7 = " java";
System.out.println("s1==s2"+ (s1 == s2));
System.out.println("s1==s3"+ (s1 == s3));
//equals 比较的是字符串的具体内容,不比较物理地址。
if(s1.equals(s2)){
System.out.println("s1 == s2");
}else{
System.out.println("s1 != s2");
}
//equalsIgnoreCase 忽略大小写进行内容的比较
if(s1.equals(s4)){
System.out.println("s1 == s4");
}else{
System.out.println("s1 != s4");
}
if(s1.equalsIgnoreCase(s4)){
System.out.println("s1 == s4");
}else{
System.out.println("s1 != s4");
}
//compareTo比较后返回的是一个整数,该数表达的含义是字符串之间字符的差别。
System.out.println(s1.compareTo(s2));
System.out.println(s1.compareTo(s4));
//regionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len);
//上述共5个参数:toffset的意思是从s1第n位开始,string other 是指进行对比的字符串,ooffset是指从s4的第n位开始,len是指比较的长度
System.out.println(s1.regionMatches(true, 0, s4, 0, 7));
System.out.println(s1.regionMatches(0, s4, 0, 7));
//startsWith 是比较前一个字符串是否由后一个数组开始的。 endsWith同理.
System.out.println(s1.startsWith(s5));
System.out.println(s1.startsWith(s6));
System.out.println(s1.endsWith(s7));
//length()得到字符串的长度
//charAt(index:int):char 返回一个字符(java中所有的index都是从零开始的)
//concat(s1:string):string.
System.out.println(s1.length());
System.out.println(s1.charAt(2));
System.out.println(s5);
System.out.println(s5.concat(s6));
System.out.println(s5.concat(s6).concat(s7));
//substring 有两种表现形式(java语言中都是左闭右开)
System.out.println(s1.substring(8, 10));
System.out.println(s1.substring(8));
//toLowerCase,toUpperCase,让字符串全变成小写全变成大写。
//trim 去掉首尾两边的空格
//注意replace的用法,replace(old,new)。
System.out.println(s1.replace('W', 's'));
//split的两种用法
//1.s1.split(" ");直接进行分割
//2.s1.split(" ",0)后面的数字代表为该字符串最多被分割成多少个字符串
System.out.println(s1.split(" "));
//注意分割后得到的是一个字符串数组类型,直接打印得到的是一个物理地址,须先进行string[]定义。
String[] tokens = s1.split(" ");
//作为foreach方法如下,打印数组内的每一个元素。
//for(元素类型 元素:元素名){打印(元素)}
for(String token:tokens){
System.out.println(token);
}
String[] takes = s1.split(" ",1);
for(String take:takes){
System.out.println(take);
}
}
}