String类型的声明与普通变量的声明相同。其一般格式如下:
String 变量名;
下面是String类型变量str的声明:
String str;
String类型的创建主要有两种形式:
直接使用字符串常量创建字符串:
String str = "hello";
String str;
str = "hello";
使用new关键字创建字符变量
String str = new String();
//创建空字符串
String str = new String(char[] a);
//将字符数组的所有元素创建字符串
String str = new String(char[] a, offset, count);
//将字符数组的某一部分元素创建字符串,以offset开始截取,截取count个数的元素
String str = new String("hello");
//使用字符常量创建字符串
compareTo()方法是按字典顺序比较两个字符串,该方法基于字符串中每一个字符的Unicode值,并按字典顺序将此String对象表示的字符序列与参与字符串所表示的字符序列进行比较。其功能如下图:
代码实例如下:
public class compareTo{
public static void main(String[] args){
String str = "abcdefg";
String str1 = "abck190";
String str2 = "abcdefg";
System.out.println(str.conpareTo(str1));
System.out.println(str.compareTo(str2));
System.out.println(str1.compareTo(str2));
}
}
输出结果为:
-7
0
7
equals()方法是比较字符串中的内容是否相等。
public class test{
public static void main(String[] args){
String str = new String("wang");
String str1 = "wang";
String str2 = "wa"+"ng";
String s = "ng";
String str4 = "wa"+s;
System.out.println(str.equals(str1));
System.out.printlc(str.equals(str2));
System.out.println(str1.equlas(str2));
System.out.println(str1.equlas(str3));
System.out.println(str1.equals(str4));
}
}
//输出结果为:
//true
//true
//true
//true
//true
equalsIgnoreCase()方法与equals()方法的作用基本上是相同的,只是equalsIgnoreCase()方法在运用是会忽略大小写。
public class testequalsIgnoreCase{
public static void main(String[] args){
String str1 = new String("abcde");
String str2 = new String("abcde");
String str3 = new String("ABCDE");
System.out.println(str1.compareTo(str3));
System.out.println(str1.equals(str2));
System.out.println(str1.equals(str3));
System.out.println(str1.equalsIgnoreCase(str3));
}
}
//输出结果为:
//32
//true
//false
//true
length()方法是Java中的一种常用的方法,用来放回字符串的长度,功能如下图:
public class testLength{
public static void main(String[] args){
String str1 = "abcde";
String str2 = "hello!";
int a = str1.length();
int b = str1.length();
System.out.println("字符串str1的长度是:"+a);
System.out.println("字符串str2的长度是:"+a);
}
}
//输出结果为:
//字符串str1的长度是:5
//字符串str2的长度是:6
indexOf()方法用于返回字符(串)在指定字符串中首次出现的索引位置,如果能找到返回索引值,否则返回-1。
代码实例如下:
public class indexOfDemo{
public static void main(String[] args){
String email = "[email protected]";
int index = email.indexOf("@");
if(index != -1){
System.out.println("您的邮箱正确!");
}else{
System.out.println("您的邮箱错误!");
}
}
}
//输出结果为:
//您的邮箱正确!
字符串对象调用subString()方法可以对字符串进行取子串的操作。
功能图如下:
代码示例如下:
public class subStringDemo{
public static void main(String[] args){
String str = "I love Java,I love daiqiuyan";
int length = str.length();
System.out.println("字符串长度为:"+length);
String strb = str.subString(5);
String stre = str.subString(5,10);
System.out.println("从第五个字符开始的子字符串是:"+strb);
System.out.println("从第五到第十的子字符是:"+stre);
}
}
//输出结果为:
//27
//从第五个字符开始的子字符串是:e Java,I love daiqiuyan
//从第五到第十的子字符是:e Jav
trim()方法的作用是去掉字符串中的空格。
功能如下图:
代码如下:
String str = " z dali ";
String str1 = str.trim();
int a = str.length();//a = 8
int b = str1.length();//b = 6
System.out.println(a+"\n"+b);
valueOf()方法作用是将其他类型的数据转换为字符串类型。
代码示例:
String s1 = String.valueOf(12.99);
System.out.println(s1);
//double类型转string类型
split()方法作用是将字符串分割成字符串数组
代码实例:
String str = "sgs#jkc#eer";
String[] str1 = str.split("#");
for (int i = 0; i < str1.length; i++) {
System.out.println(str1[i]);
//输出结果是sgs jkc eer
}
join()作用是将分隔符(delimiter)插入到后面所有相邻的两个字符串中间。
代码实例:
List names=new ArrayList();
names.add(“1”);
names.add(“2”);
names.add(“3”);
System.out.println(String.join(“-“, names));
String[] arrStr=new String[]{“a”,”b”,”c”};
System.out.println(String.join(“-“, arrStr));
//输出:
//1-2-3
//a-b-c
StringBuffer对象声明的一般格式如下
StringBuuffer 变量名;
StringBuffer对象有三种创建的构造方法
不带参数的构造方法StringBuffer()
改构造方法为对象提供课容纳16个字符的空间
StringBuffer str = new StringBuffer()
以整形数为参数的构造方法StringBuffer(int length)
该构造方法为对象提供length个字符位
StringBuffer str = new StringBuffer(1024);
以String对象作为参数的构造方法StringBuffer(String str)
该构造方法用str为对象进行初始化
StringBuffer str = new StringBuffer("Hello!");
append()方法用于向字符串中追加内容,有多种实现方式,可以接受任何类型的数据。
功能图如下:
deleteCharAt()方法作用是删除只当位置的字符,然后将剩下的内容形成新的字符串放回。
功能图如下:
insert()方法是在StringBuffer对象中插入内容,然后形成新的字符串。它和append()方法的区别就是insert()方法可以在任意指定位置插入任意类型的数据。
功能如下图:
setCharAt()方法作用是将对象索引值为指定位置的字符修改为新的字符,功能如下图:
reverse()方法作用是将StringBuffer对象中的内容反转,然后形成新的字符。