- String类概述
String类,字符串是一个特殊的对象。
字符串一旦初始化就不可以被改变。
class StringDemo
{
public static void main(String[] args)
{
String s1 = "abc"; //s1是一个类类型变量, “abc”是一个对象。
String s2 = new String("abc"); //字符串最大的特点就是,一旦被初始化就不可以被改变。
/*
s1和s2有什么区别?
s1在内存中有一个对象。
s2在内存中有两个对象。
*/
System.out.println(s1==s2);
System.out.println(s1.equals(s2)); //String类复写了Object类中的equals方法。
//该方法用于判断字符串是否相同。
//equals(Object anObject)将字符串与指定对象进行比较
}
}
- 常见功能–获取和判断
String类适用于描述字符串事物。
那么它就提供了多个方法对字符串进行操作。
常见的操作有哪些?
*
- 获取。
1.1 字符串中的包含的字符数,也就是字符串的长度。
int length();// 获取长度。
1.2 根据位置获取位置上某个字符。
char charAt(int index);//
1.3 根据字符获取该字符在字符串中位置。
int indexOf(int ch);//返回的是ch在字符串中第一次出现的位置。
int indexOf(int ch, int fromIndex); //从fromIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str);//返回的是str在字符串中第一次出现的位置。
int indexOf(String str, int fromIndex);//从fromIndex指定位置开始,获取str在字符串中出现的位置。- 判断。
2.1 字符串中是否包含某个字串。
boolean contains(str);
特殊之处:indexOf(str); 可以索引str第一次出现位置,如果返回-1,表示该str不在字符串中存在。 所以,也可以用于对指定判断是否包含。
if(str.indexOf(“aa”)!=-1); //而且该方法既可以判断,又可以获取出现位置。
boolean contains(CharSequence s) // 当且仅当此字符串包含指定的 char 值序列时,返回 true。
2.2 字符串是否有内容。
boolean isEmpty();// 原理是判断长度是否为0.
2.3 字符串是否以指定内容开头。
boolean startsWith(str);//
2.4 字符串是否以指定内容结尾。
boolean endsWith(str);//
2.5 判断字符串内容是否相同。复写了Object类中的equals方法。
boolean equals(str)
2.6 判断内容是否相同,并忽略大小写。
boolean equalsIgnoreCase();
*
class StringMethodDemo
{
public static void method_is()
{
String str = "ArrayDemo.java";
//判断文件名称是否是Array单词开头
sop(str.startsWith("Array"));
//判断文件名称是否是.java文件。
sop(str.endsWith(".java"));
//判断文件中是否包含Demo
sop(str.contains("Demo"));
}
public static void method_get()
{
String str = "abcdef";
//长度
sop(str.length());
//根据索引获取字符
sop(str.charAt(4));
//根据字符获取索引
sop(str.indexOf("m",3));//如果没有找到,返回-1
//反向索引一个字符出现位置。
sop(str.lastIndexOf("a"));
}
public static void main(String[] args)
{
String s1 = "abc";
String s2 = new String("abc");
String s3 = "abc";
System.out.println(s1==s2);//false
System.out.println(s1==s3);//true
method_get();
method_is();
}
static void sop(Object obj)
{
System.out.println(obj);
}
}
常见功能–转换
转换
3.1 将字符数组转成字符串
构造函数: String(char[])
String(char[],offset,count);//将字符数组中的一部分转成字符串。
静态方法:
static String copyValueOf(char[]);//返回数组的字符串形式。
static String copyValueOf(char[],int offset,int count);
3.2将字符串转成字符数组
char[] toCharArray()
将此字符串转换为一个新的字符数组。
3.3将字节数组转换成字符串。3.4将字符串转换成字符数组。
3.5将基本数据类型换成字符串。
static String valueOf(boolean b)
返回 boolean 参数的字符串表示形式。
static String valueOf(char c)
返回 char 参数的字符串表示形式。
static String valueOf(char[] data)
返回 char 数组参数的字符串表示形式。
static String valueOf(char[] data, int offset, int count)
返回 char 数组参数的特定子数组的字符串表示形式。
static String valueOf(double d)
返回 double 参数的字符串表示形式。
static String valueOf(float f)
返回 float 参数的字符串表示形式。
static String valueOf(int i)
返回 int 参数的字符串表示形式。
//(3+”“);//(“String.valueOf(3)”); 两者具备相同效果。
static String valueOf(long l)
返回 long 参数的字符串表示形式。
static String valueOf(Object obj)
返回 Object 参数的字符串表示形式。
class StringMethodDemo1
{
public static void method_trans()
{
char[] arr = {'a','b','c','d','e','f'};
String s = new String(arr,1,4);
sop(s);
String s1 = new String(arr);
sop(s1);
String s2 = new String().copyValueOf(arr);
sop(s2);
String s3 = String.copyValueOf(arr);
sop(s3);
String ss = "qwqwlejrlwqejrlk";
char[] arr1 = ss.toCharArray();
String s4 = String.copyValueOf(arr1);
sop(s4);
for (int x = 0;x<arr1.length;x++ )
{
sop("arr1["+x+"]="+arr1[x]);
}
}
public static void main(String[] args)
{
method_trans();
}
static void sop(Object obj)
{
System.out.println(obj);
}
}
- 常见功能–切割和替换
- 替换
String replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
String replace(CharSequence target, CharSequence replacement)
使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。 - 切割
String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。 - 字串,获取字符串中的一部分。
String substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。
String substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。
- 替换
class StringMethodDemo2
{
public static void method_sub()
{
String s = "asdfsdagsdg";
String s1= s.substring(2);//从指定位置开始到结尾。如果指定角标不存在,会出现角标越界异常
String s2= s.substring(2,6);//包含头,不包含尾。 s.substring(0,s.length());取得整串。
sop("s1="+s1);
sop("s2="+s2);
}
public static void method_spilt()
{
String s = "zhangsan,lisi,wangwu";
String[] arr1= s.split(",");
for (int x= 0;x<arr1.length ;x++ )
{
sop(arr1[x]);
}
}
public static void method_replace()
{
String s = "Hello java!";
String s1= s.replace("a","n");//如果要替换的字符不存在,返回的还是原来的字符串
String s2= s.replace("java","world");
sop("s="+s);
sop("s1="+s1);
sop("s2="+s2);
}
public static void main(String[] args)
{
method_sub();
method_spilt();
method_replace();
}
static void sop(Object obj)
{
System.out.println(obj);
}
}
常见功能–比较和去除空格
- 转换,去除空格,比较
String toUpperCase();//转换成大写
String toLowerCase();//转换成小写
String trim()
返回字符串的副本,忽略前导空白和尾部空白
- 转换,去除空格,比较
class StringMethodDemo3
{
public static void method_7()
{
String s = " Hello java.";
String s1= s.toUpperCase();
String s2= s.toLowerCase();
String s3= s.trim();
sop("s1="+s1);
sop("s2="+s2);
sop("s3="+s3);
}
public static void main(String[] args)
{
method_7();
}
static void sop(Object obj)
{
System.out.println(obj);
}
}
- String字符串练习
- StringBuffer常见功能–添加、删除、修改