String类
String类用于比较两个字符串,查找和抽取串中的字符或子串,进行字符串与其他类型之间的相互转化。
String类的每次改变(例如字符串连接等)都会生成一个新的字符串,浪费内存
StringBuffer类用于内容可以改变的字符串
StringBuffer.toString()转换为String类
String类的两种实例化方法
1.使用字符串常量初始化
str1=“hello”
str2=“hello”
2.使用构造函数初始化
String str3=new String(“hello”)
这种方法会开辟出两块堆内存空间,其中一块内存会成为垃圾,也无法完成自动入池操作,数据无法共享
//手动入池
String str3=new String(“hello”).intern();
String内容的比较
1.调用equals(object)方法
2.equalsIgnoreCase()方法忽略大小写
3.使用比较运算符==
public class demo {
/**
* String类练习
* @param args
*/
public static void main(String []args)
{
String str1="hello"; //类名称如str1,对象名称存在栈内存中,“hello”字符串保存在堆内存中
String str2="hello";
//String本身是一个类,String类的对象是可以进行引用传递的,引用传递的结果是,不同的栈内存将保存同一块堆内存空间的地址
String str3=new String("hello");//使用new会开辟一个新堆内存空间
String str4="HELLO";
if(str1==str2)//等号比较两个对象是否引用同一个实例
{
System.out.println("str1与str2相同。");
}
if(str1==str3)
{
System.out.print("使用==-------");
System.out.println("str1与str3相同。");
}
if(str1.equals(str3))//比较当前对象和参数对象的值是否相同
{
System.out.print("使用equals-------");
System.out.println("str1与str3相同。");
}
if(str4.equalsIgnoreCase(str3))
{
System.out.print("使用equalsIgnoreCase-------");
System.out.println("str3与str4相同。");
}
if(str4.equalsIgnoreCase(str1))
{
System.out.print("使用equalsIgnoreCase-------");
System.out.println("str1与str4相同。");
}
}
}
4.JAVA判断字符串大小
compareTo()是按字符串中逐个字符的ASCII码值进行比较
字符串常量是String类的匿名对象
匿名对象是没有名字,而且可以调用类中的相关方法
if(str1.equals(“hello”)) //如果str1没有内容会出错
{
System.out.print("正常-------");
}
if(“hello”.equals(str1))//如果str1没有内容也没关系
{
System.out.print("正常-------");
}
String类修改
public class demo {
/**
* String类练习
* @param args
*/
public static void main(String []args)
{
String str1="hello";
str1+=" world";
str1=str1+"!!!";
System.out.println(str1);
}
}
看起来是str1发生了变换,其实不然
字节和字符串
public class demo {
/**
* String类字节数组和字符串的转换
* @param args
*/
public static void main(String []args)
{
String str1="hellojava";
byte []data=str1.getBytes();
for(int i=0;i<data.length;i++)
{
data[i]=(byte) (data[i]-32);//byte数组的内容ASCII码减32
}
System.out.println(new String(data));
System.out.println(new String(data,5,4));//public String(byte []bytes,int offset,int length);
}
}
字符串查找
字符串截取
//subString();
public class demo {
/**
* String类字符串截取
* @param args
*/
public static void main(String []args)
{
String str1="hellojava";
System.out.println(str1.substring(5));
System.out.println(str1.substring(0,5));
}
}
字符串拆分
public class demo {
/**
* String类字符串拆分
* @param args
*/
public static void main(String []args)
{
String str1="hello java hello world !";
String data[]=str1.split(" ");
for(int i=0;i<data.length;i++)
{
System.out.println(data[i]);
}
System.out.println("---------------");
String data1[]=str1.split(" ",3);
for(int i=0;i<data1.length;i++)
{
System.out.println(data1[i]);
}
}
}