1. 字符串与字符数组.
提供了以下的方法:
(1)将字符串转化为字符数组:
public char[] toCharArray();
举例:
public class StringApi {
public static void main(String[] args) {
String str = "nishuibaichuan";
char[] c = str.toCharArray();
for (int i = 0; i < c.length; i++) {
System.out.print(c[i]+"\t");
}
}
}
运行结果:
n i s h u i b a i c h u a n
(2)将字符数组转化为字符串
public String(char[] value);//全部转换为字符串
public String(char[] value,int offset,int count);//部分转化
public class StringApi1 {
public static void main(String[] args) {
char[] c = {'n','i','s','h','u','i', 'b','a','i','c','h','u','a','n' };
String str1 = new String(c);//将全部字符数组转化为字符串
String str2 = new String(c,0,3);//将部分字符数组转化为字符串
System.out.println(str1);
System.out.println(str2);
}
}
运行结果:
nishuibaichuan
nis
2. 从字符串中取出指定位置的字符
public char charAt(int index)
举例:
public class CharAt {
public static void main(String[] args) {
String str = "nishuibaichuan";//定义String对象
System.out.println(str.charAt(3));
}
}
运行结果: h
3.字符串和byte数组的转换
byte数组又称为字节数组,一般在IO流的操作中经常使用到.
(1)将字符串变为字节数组:public byte[] getBytes();
举例: public class Bytes {
public static void main(String[] args) {
String str = "nishuibaichuan";
byte[] bytes = str.getBytes();//将字符串转化为字节数组
for (int i = 0; i < bytes.length; i++) {
System.out.print(bytes[i]+",");
}
}
}
(2)将字节数组变为字符串数组:public String(byte[] bytes);
public String(byte[] bytes,int offset,int lenght);
举例:
public class Bytes {
public static void main(String[] args) {
String str = "nishuibaichuan";
byte[] bytes = str.getBytes();//将字符串转化为字节数组
String str1 = new String(bytes);//将全部字节数组转换为字符串
String str2 = new String(bytes,1,3);//将部分字节数组转换为字符串
System.out.println(str1);
System.out.println(str2);
}
}
运行结果:
nishuibaichuan
ish
4.取得字符串长度
public int length();
举例:
public class Length {
public static void main(String[] args) {
String str = "nishuibaichuan";
System.out.println(str.length());
}
}
运行结果: 14 5.查找指定的字符串是否存在.
(1)从头开始查找:public int indexOf(String str);
(2)从指定位置开始查找:public int indexOf(String str,int fromIndex);
查找的时候方法的返回值是一个int类型,此数据表示的是一个字符串的具体数据,如果没有查找到此字符串,则返回"-1".
举例:
public class IndexOf {
public static void main(String[] args) {
String str = "nishuibaichuan" ;
System.out.println(str.indexOf("i"));
System.out.println(str.indexOf("i",3));
}
}
运行结果:1 5
6. 去掉空格
public String trim();只能去掉头尾空格,而不能去掉中间的空格,这多用于接受用户传递过来的信息;
举例:
public class Trim {
public static void main(String[] args) {
String str = " nishuibaichuan " ;
System.out.println(str.trim());
}
}
运行结果:nishuibaichuan
7.字符截取,比较常用
从一个字符串中截取指定的部分字符串内容
(1)public String substring(int beginIndex);返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。
(2)public String substring(int beginIndex,int endIndex)返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。
举例:
public class SubString {
public static void main(String[] args) {
String str = "nishuibaichuan" ;
System.out.println(str.substring(6));//(下标从0开始的)从第6个开始,到最后一个结束
System.out.println(str.substring(6,9));//从第6个开始,到第9个结束,但不含第9个
}
}
运行结果:
baichuan
bai
8.拆分字符串
如果要把一个字符串按照指定的字符串去拆分的话,就用到:public String[] split(String regex);
举例:
public class Split {
public static void main(String[] args) {
String str = "nishui baichuan" ;
String[] strs = str.split(" ");//俺空格进行字符串的拆分
for (int i = 0; i < strs.length; i++) {
System.out.println(strs[i]);
}
}
}
9.大小写转换
(1)小写变大写:public StringString toUpperCase();
(2)大写变小写:public StringString toLowerCase();
public class ToUpperLower {
public static void main(String[] args) {
String str1 = "NISHUIBAICHUAN";
String str2 = "nishuibaichuan";
System.out.println(str1.toLowerCase());//大写变小写
System.out.println(str2.toUpperCase());//小写变大写
}
}
10.判断是否以指定的字符串开头或结尾
(1)测试此字符串是否以指定的字符串开始:public boolean startsWith(String prefix);
(2)测试此字符串是否以指定的字符串结束:public booleanString endsWith(String suffix);
举例:
public class StartEnds {
public static void main(String[] args) {
if(str1.startsWith("@@")){
System.out.println("str1以@@开头");
}
if(str2.endsWith("@@")){
System.out.println("str2以@@结尾");
}
}
}
运行结果:
str1以@@开头
str2以@@结尾
11. 不区分大小写的比较
在前面笔者怎提到过equals()的用法,他是比较两个字符串内容是否相等的方法,但是他有一个条件就是比较的字符串必须是大写或者为小写.现在我们就来看看不区分大小写的比较吧:public boolean equalsIgnoreCase(String anotherString):将此 String 与另一个 String 比较,不考虑大小写。如果两个字符串的长度相同,并且其中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的;
举例:
public class Equals {
public static void main(String[] args) {
String str1 = "NISHUIBAICHUAN";
String str2 = "nishuibaichuan";
System.out.println(str1.equals(str2));//区分大小写
System.out.println(str1.equalsIgnoreCase(str2));//不区分大小写
}
}
运行结果:false true
12.字符串替换功能,常见
public String replaceAll(String regex, String replacement)使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
举例:
public class ReplaceAll {
public static void main(String[] args) {
String str = "nishuibaichuan";
String newString = str.replaceAll("i", "I");//将字符串中所有的i替换为大写I
System.out.println(newString);
}
}
运行结果:
nIshuIbaIchuan