String类中常用的操作
获取:
获取字符串的长度(注意是方法,不是跟数组的属性一样的) int length();
1 public static void getLength(){ 2 String s = "java01"; 3 int len = s.length(); 4 System.out.println(len); 5 }
根据位置,获取该位置的那一个字符(只能是单个字符) char charAt(int index);
1 //根据指定位置获取对应的那个字符,只能是一个字符不能是字符串 2 public static void getChar(){ 3 String s1 = "java01"; 4 char ch = s1.charAt(3); 5 System.out.println(ch); 6 //s1.charAt(45);当访问到字符串中不存在的角标是会发生StringIndexOutOfBoundsException,即字符串角标越界异常 7 }
根据字符或字符串获取索引,即根据字符或字符串获取该字符或字符串在整个字符串中的位置,如果字符串中没有该字符或字符串会返回-1
int indexOf(int ch):返回的是ch在字符串中第一次出现的位置
int indexOf(int ch,int fromIndex):从fromIndex指定位置开始查找,获取ch在字符串中出现的位置
int indexOf(String str):返回的是str在字符串中第一次出现的位置
int indexOf(String str,int
fromIndex):从fromIndex指定位置开始查找,获取str在字符串中出现的位置
1 public static void getIndexOf(){ 2 String s = "javascript"; 3 int x1 = s.indexOf(‘s‘); 4 int x2 = s.indexOf(‘a‘,2); 5 int x3 = s.indexOf("script"); 6 int x4 = s.indexOf("script",2); 7 System.out.println("x1="+x1+",x2="+x2+",x3="+x3+",x4="+x4); 8 }
反向索引一个字符或字符串出现的位置
1 public static void getLastIndexOf() { 2 String s = "javascript"; 3 int x = s.lastIndexOf(‘a‘); 4 System.out.println("x="+x); 5}
获取字符串中的一部分,即获取子串 String substring(begin);//从指定位置开始到结尾 String substring(begin,end);//,指定开始和结尾 包含头不包含尾
1 public static void getSubstring(){ 2 String s1 = "javascript"; 3 String s2 = s1.substring(4); 4 String s3 = s1.substring(0,5); 5 System.out.println("s2="+s2+",s3="+s3); 6 }
转换:
将字符数组转成字符串
构造函数:String(char[])
Stirng(char[],fffset,count):将字符数组中的一部分转换字符串
静态方法:(直接用String类名调用,如:String s =
String.copyValueOf())
static
String
copyValueOf(char[]);
static String copyValueOf(char[] ,int offset, int
count);(offset表示起始位,count表示个数.如果超过了字符数组的长度,也发生字符串角标越界)
//ValueOf这个方法除了可以将字符数组变成字符串之外,也可以将其他基本数据类型变成字符串
static String
valueOf(char[]);
static String valueOf(char[] data, int offset, int count)
1 public static void CharsToString(){ 2 char[] arr ={‘j‘,‘a‘,‘v‘,‘a‘,‘s‘,‘c‘,‘r‘,‘i‘,‘p‘,‘t‘}; 3 //通过String类的构造函数将字符数组转成字符串(可以将字符数组的一部分转成字符串) 4 String s1 = new String(arr); 5 String s2 = new String(arr,2,7); 6 System.out.println("s1="+s1+",s2="+s2); 7 8 //通过String类中的静态方法将字符数组转成字符串(可以将字符数组的一部分转成字符串) 9 String s3 = String.copyValueOf(arr); 10 String s4 = String.copyValueOf(arr, 2, 7); 11 System.out.println("s3="+s3+", s4="+s4); 12 }
将字符串转成字符数组 char[] toCharArray();
1 public static void StringToChar(){ 2 String s = "javascript"; 3 char[] arr = s.toCharArray(); 4 for(char arrs : arr){ 5 System.out.println(arrs); 6 } 7 }
将字节数组转成字符串(只能用构造函数)
String(byte[])
Stirng(byte[],fffset,count):将字节数组中的一部分转
1 public static void ByteToString(){ 2 byte[] arr ={‘j‘,‘a‘,‘v‘,‘a‘,‘s‘,‘c‘,‘r‘,‘i‘,‘p‘,‘t‘}; 3 String s1 = new String(arr); 4 String s2 = new String(arr,5,6); 5 System.out.println("s1="+s1+",s2="+s2); 6 }
将字符串转成字节数组(字符串和字节数组在转换过程中,是可以指定编码表的。) byte[] getBytes();
1 public static void StringToBytes(){ 2 String s1 = "javascript"; 3 byte[] arr = s1.getBytes(); 4 for(byte arrs : arr){ 5 System.out.println((char)arrs); 6 } 7 }
将基本的数据类型转成字符串
static String valueOf(int)
static String valueOf(double)
3+""; String.valueOf(3);//这是一样的
将字符串转成大写或者小写 String toUpperCase(); String toLowerCase();
1 public static void ToUpper_Lower(){ 2 String s1 = "javascript"; 3 String s2 = s1.toUpperCase();//转成大写 4 String s3 = s2.toLowerCase();//转成小写 5 System.out.println("s2="+s2+",s3="+s3); 6 }
判断:
字符串中是否含某一个子串(不能判断是否包含某一个字符,只能是字符串) boolean contains(str);
特殊之处:indexOf(str)可以索引str第一次出现位置,如果返回-1,表示该str不在字符串中存在 所以也可以用于对指定判断是否包含
该方法既可以判断又可以获取出现的位置
只用于判断时用contains,既要判断又要获取位置用indexOf
1 public static void containsDemo() { 2 String s = "javascript"; 3 boolean b = s.contains("java"); 4 System.out.println(b); 5 }
字符中是否有内容 boolean isEmpty():就是判断长度是否为0
1 public static void isEmptyDemo() { 2 String s = " ";//空格也是一个字符 3 boolean b = s.isEmpty(); 4 System.out.println(b); 5 }
字符串是否以指定的内容开头(接受的是字符串) boolean startsWith(str)
字符是否是以指定内容结尾 boolean endsWith(str);
1 public static void startsWith_endsWith() { 2 String s = "Array.java"; 3 boolean b1 = s.startsWith("Array");//开发中可以用于判断该文件名称是否是Array单词开头 4 boolean b2 =s.endsWith(".java");//开发中可以用于判断该文件名的后缀是否是.java文件 5 System.out.println("b1="+b1+",b2="+b2); 6 }
判断字符串内容是否相同(复写了Object类中的equals方法,定义了自己的比较方式,比较字符串内容是否相同,相同为true,不相同为false) boolean equals(str);
1 public static void equalsDemo() { 2 String s1 = "javascript"; 3 String s2 = "javascript"; 4 String s3 = "html+CSS"; 5 boolean b1 = s1.equals(s2); 6 boolean b2 = s1.equals(s3); 7 System.out.println("b1="+b1+",b2="+b2); 8 }
判断内容是否相同,并忽略大小写 boolean equalsIgnoreCase();
对两个字符串进行自然顺序的比较(该方法能比较出谁大谁小,而equals只是比较两个对象是否相等) int compareTo(string);
对象之间的比较用的是compareTo方法,基本数据类型数据之间的比较用的是大于号,小于号,等于号这些运算符
1 public static void compareToDemo() { 2 String s1 = "javascript"; 3 String s2 = "javascript"; 4 String s3 = "java"; 5 int b1 = s1.compareTo(s2); 6 int b2 = s1.compareTo(s3); 7 int b3 = s3.compareTo(s1); 8 System.out.println("b1="+b1+",b2="+b2+",b3="+b3); 9 }
其他常用的方法:
替换(将字符串中的某个字符或某部分字符串替换)
String
replace(oldchar,newchar);替换一个字符
String
replace(CharSequence target, CharSequence replacement);可以替换一个字符串
1 public static void replaceDemo() { 2 String s = "javascript"; 3 String s1 = s.replace(‘a‘, ‘b‘); 4 String s2 = s.replace("java", "php"); 5 System.out.println("s1="+s1+",s2="+s2); 6 }
切割(返回的是一个字符串数组) String[] split(regex);
1 public static void splitDemo() { 2 String s = "java,javascript,php"; 3 String[] ss = s.split(",");//这里要是双引号 4 for(String sss : ss){ 5 System.out.println(sss); 6 } 7 }
将字符串两端的多个空格去除 String trim();
1 public static void trimDemo(){ 2 String s = " javascript " 3 String ss = s.trim(); 4 System.out.println(s); 5 System.out.println(ss); 6 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。