字符串(String)是用一对双引号括起来的零个或多个字符组成的有限序列。在Java中,字符串被当作对象/类来处理。
程序中需要用到的字符串可以分为:
String类:不可变字符串类,如果修改系统会自动创建新的对象;
StringBuffer类:可变字符串类,多线程;
StringBuilder类:可变字符串类,单线程;
串的两种最基本的存储方式是顺序存储方式和链接存储方式
字符串变量必须赋值后才可以使用,这称为字符串对象初始化。
字符串的创建和赋值的方式有三种:
String 字符串变量名;
字符串变量名="字符串常量";
String username="";
username="Tom"
或者
String 字符串变量名="字符串常量";
String SayHello="Hello world";
或者
String studentName=new String("周杰杰");
1、利用构造器:
String s=new String("Hello world");
2、直接创建:
String s="Hello world";
length()方法是用来获取字符串长度的。它会返回字符串对象中所包含的字符的个数,例如:
public class myfirst {
public static void main(String[] args) {
String sayHello="Hello,Welcome to Java!!!"; //创建一个sayHello字符串并赋值
int length=sayHello.length(); //创建一个变量length存放所获取的字符串长度
System.out.println(length);
}
}
1. concat()函数
str1.concat(str2);
concat()方法返回一个字符串,是将字符串str2添加到str1后面之后形成新字符串,例如:
public class myfirst {
public static void main(String[] args) {
String sayHello1="Hello,"; //创建字符串sayHello1、sayHello2并赋值
String sayHello2="Welcome to Java!!!";
String sayHello3=sayHello1.concat(sayHello2); //将合并后的字符串赋值给sayHello3
System.out.println(sayHello3);
}
}
运行结果为:Hello,Welcome to Java!!!
也可以直接使用字符串常量来调用concat()方法。例如:
String sayHello3="Hello,".concat("welcome to Java!!!")
2. 加号'+'运算符
连接字符串还可以使用加号“+”运算符。这是一个重载了的运算符,用来直观地连接两个字符串,它使用起来比concat()方法更加灵活。例如:
String 字符串3=字符串1+字符串2;
注意:
当表达式中包含多个加号,并且存在各种数据类型参与运算时,则按照加号运算符从左到右进行运算;
Java会根据加号运算符两边的操作数类型来决定是进行算术运算还是字符串连接的运算。
字符串比较
比较两个字符串是否相等
equals()方法:比较两个字符串是否相等,返回值boolean值;
equalsIgnoreCase()方法:同样返回值为boolean值;
字符串1.equals(字符串2); //严格比较字符串是否相同
字符串1.equalsIgnoreCase(字符串2); //忽略字母大小写来进行比较
public class myfirst {
public static void main(String[] args) {
String sayHello1="HELLO"; //创建两个字符串
String sayHello2="hello";
System.out.println(sayHello1.equals(sayHello2)); //使用equals方法进行严格比较
System.out.println(sayHello1.equalsIgnoreCase(sayHello2)); //使用equalsIgnoreCase方法忽略大小写进行比较
}
}
运行结果:
false
true
截取字符串:
public class myfirst {
public static void main(String[] args) {
String s1="abcdefg";
#截取开始位置为3的字符串
System.out.println(s1.substring(3));
#截取开始索引为2,结束索引为5但不包含5的字符串
System.out.println(s1.substring(2, 5));
}
}
运行结果:
defg
cde
返回指定索引处的字符:charAt()
charAt函数返回只包含一个字符的字符串,而不是一个字符本身。如果给定index超出字符串范围,则返回一个空字符串
如果需要直接输出字符串中的字符,如输出字符串s2中的字符,仅需将变量类型定义为char型
String转StringBuilder
String a = new String("123");
StringBuilder s = new StringBuilder(a);
StringBuilder转String
String s2 = s.toString(s);
StringBuilder s = new StringBuilder("hzy ");
//直接调用append();
s.append("aaa ");
//也可以如下拼接
s.append("bbb ").append("ccc ");
System.out.println(s);
运行结果:
hzy aaa bbb ccc