String类常用的方法总结如下:
①length():返回字符串个数;
②equals():检查字符串中的内容是否一致;
equals()和==号的详细区别,见博客总结:
http://blog.csdn.net/yajing8/article/details/73528096
③equalsIgnoreCase():忽略大小写;
④toUpperCase():转为大写;
⑤toLowerCase():转为小写;
⑥concat():字符串连接;
⑦indexOf(字符或Sring):返回第一个出现的字符或字符串索引位置; (从0开始),没有返回-1
Eg:检查邮箱格式:
email.indexOf(“@”)!=-1&&email.indexOf(“@”)>email.indexOf(“.”)
lastIndexOf(字符或Sring):返回最后一个出现的字符或字符串索引 位置,没有返回-1;
⑧subString(int index):提取从索引位置开始的以后字符串;
subString(int begin,int end):提取参数一和参数二之间的字符
串,包前不包后;begin从0开 始,end从1开始;
⑨字符串拆分:split():将字符串拆分为字符串数组;
举例如下:
package com.day7.demo1;
import org.junit.Test;
/**
* String 方法练习
* @author 任志燕
* 2017年6月23日
*
*/
public class StringTest {
/**
* 1.equalsIgnoreCase():忽略大小写
* 2.toLowerCase():转成小写
* 3.toUpperCase():转成大写
*/
@Test
public void testOne(){
String str = "abc";
String str1 = "aBc";
System.out.println(str1.equals(str));//false
System.out.println(str.equalsIgnoreCase(str1));//true
System.out.println(str.toLowerCase());//abc
System.out.println(str.toUpperCase());//ABC
System.out.println(str == str1+"***"+str.equals(str1));
}
/**
* String连接方法(一般不用)
* 4.str1.contact(str1):不会影响str1,因为str1是常量
*/
@Test
public void testTwo(){
String str = "abc";
String str1 = str.concat("ddd");
System.out.println(str1);//abcddd
System.out.println(str);//abc
}
/**
* 索引一般从0开始,截取字符串
* 5..str.substring(int x):包括x及x以后的字符串
* 6.str.substring(int x, int y):包括x不包括y的字符串(长度是截出字符串的长度)
*/
@Test
public void testThree(){
String str = "143431189505148321";
String str1 = str.substring(6);//包括6及6以后的字符串
String birth = str.substring(6, 14);//包括前面不包括后面
System.out.println(str1);//199505143321
System.out.println(birth);//19950514
}
/**
* 7.indexOf():求某个字符的索引位置,从0开始
* 8.lastIndexOf():
*/
@Test
public void testFour(){
String str = "143431189505148321";
int num1 = str.indexOf("4");
int num2 = str.indexOf("4", 2);
int num3 = str.lastIndexOf("4");
int num4 = str.lastIndexOf("4", 2);
System.out.println(num1);//1
System.out.println(num2);//3
System.out.println(num3);//13
System.out.println(num4);//1
}
/**
* 9.replace(var1,var2):
* 参数可以是字符或字符串
* 用var2替换var1
* 是全部替换
*/
@Test
public void testFive(){
String str = "142431066505143321";
String str1 = str.replace('4', '0');//全部替换
System.out.println(str);//142431199505143321
System.out.println(str1);//102031199505103321
String str2 = str.replace("43", "88");//全部替换
System.out.println(str);//142431199505143321
System.out.println(str2);//142881199505188321
}
/**
* 10.compareto("")方法,返回参与比较的前后两个字符串的asc码的差值:
* 字符串长度相同时:
* 两个字符串首字母不同,则该方法返回首字母的asc码的差值
* 即参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值;
* 字符串长度不相同时:
* 如果两个字符串不一样长,可以参与比较的字符又完全一样,则返回两个字符串的长度差值
* 如果两个字符串不一样长,可以参与比较的字符不完全一样,则挨个比较
*/
@Test
public void test(){
String str = "dnc";
System.out.println(str.compareTo("fgh"));//-2
String str1 = "dnc";
System.out.println(str1.compareTo("fghh"));//-2
String str2 = "dncc";
System.out.println(str2.compareTo("dnc"));//1
}
/**
* 11.trim():只能去除首尾空格
*/
@Test
public void testSeven(){
String str = " abc ";
System.out.println(str.length());//5
System.out.println(str.trim().length());//3
String str1 = " a b c";
System.out.println(str1.length());//6
System.out.println(str.trim().length());//3
}
/**
* 12.valueOf():static方法
* 用于其他类型转化成String类型
*/
@Test
public void testEight(){
int num = 12;
String numStr = String.valueOf(num);
System.out.println(numStr);
}
/**
*13. format():static方法
* 用于格式化数据(和C语言格式形同)
*/
@Test
public void testNine(){
double num = 23.8999999;
System.out.println(String.format("%.2f", num));//23.90
}
/**
* 14.split(" "):根据空格分开,返回一个字符串数组
* 用于格式化数据
*/
@Test
public void testTen(){
String str = "123 456 789";
String[] arr = str.split(" ");
System.out.println(arr.length);//3
}
/**
* 15.toCharArray():转换成字符数组
*/
@Test
public void testSix(){
String str = "143431189505148321";
char[] charArr = str.toCharArray();
for (int i = 0; i < charArr.length; i++) {
System.out.print(charArr[i]+" ");//1 4 2 4 3 1 1 9 9 5 0 5 1 4 3 3 2 1
}
}
}