Java基础04—字符串
2021-01-20 17:14
标签:介绍 清华大学 入门 正则表达式 删除 语句 strong string cond 参考资料:《Java从入门到精通》/明日科技编著. 4版. 北京:清华大学出版社,2016 在Java语言中,字符串作为String类的实例来处理。以对象的方式来处理字符串,使字符串更加灵活、方便。 前面介绍了,char类型变量只能表示单个字符,不能表示由多个字符连接而成的字符串。在java语言中将字符串作为对象处理,可以通过java.lang包中的String类来创建字符串对象。 在Java语言中,字符串必须包含在一对双引号("")中。声明一个字符串的方式如下: 注意:声明字符串变量必须经过初始化才能使用,否则编译器会报出“变量未经过初始化”。 Java语言中将字符串作为对象来处理,因此可以像创建对象一样来创建字符串对象。 (1)String(char a[]) (2)String(char a[], int offset, int length) 除了上面的两种方式,还可以通过引用字符串常量来创建字符串变量。 此时,str1和str2引用相同的字符串变量,因此具有相同的实体。 字符串同其他基本数据类型进行连接时,会自动调用toString()方法,将这些数据直接转换成字符串。 使用String类的length()方法可以获取声明的字符串对象的长度。 注意:字符串的长度包括字符串中的空格。 String类提供了两种查找字符串的方法,即indexOf()和lastIndexOf()方法。 注意:计算机中String对象是数组表示的,字符串的下标从0开始。 说明:如果lastIndexOf()方法中的参数为空字符串""(注意没有空格),则返回字符串的长度。 使用charAt()方法可以将指定索引位置的字符返回。 通过String类的substring()方法可以对字符串进行截取。这些方法的共同点就是利用字符串的下标进行截取。 返回从指定的索引位置开始截取至该字符串的结尾。 返回从指定的索引位置开始截取至指定的索引位置结束的字符串。 trim()方法返回字符串的副本,忽略前导空格和尾部空格。 注意:中间的空格保留 replace()方法可实现将指定的字符或字符串替换成新的字符或字符串。格式如下: 该方法用于判断字符串对象的前缀是否为参数指定的字符串,返回值为boolean类型。 该方法用于判断当前字符串是否为以指定的子字符串结束,返回值为boolean型。 对字符串对象的比较不能简单地使用比较运算符“==”,因为比较运算符比较的是两个字符串的内存地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用比较运算符仍然会返回false。 因此,要比较两个字符串的内容是否相等,应该使用equals()和equalsIgnoreCase()方法。 该方法比较两个字符串是否具有相同的字符和长度,结果返回boolean类型。注意:进行字符比较是区分大小写。 该方法和equals()类似,但是不区分大小写。 compareTo()方法是按照字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值。 注意: 将字符串中的所有字母转换为小写字母。 将字符串中的所有字母转换为大写字母。 split()方法可以使字符串按照指定的分割符或字符串对内容进行分割,并将分割后的结果存放在字符串数组中。split()方法提供了两种字符串分割形式。 其中,sign为字符串的分割符,也可以是正则表达式。如果想定义多个分割符,可以使用“|”符号。例如,“,|?”表示使用“,”和“?”进行分割。 String类的静态format()方法用于创建格式化的字符串。format()有两种重载的方式: 其中,"%te、%tY、%tm是转换符。 正则表达式通常被用于判断语句中,用来检测某一字符串是否满足某一格式。 创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的String实例,会在内存中创建新的字符串对象。如果重复对字符串进行修改,将极大地增加系统开销。使用可变地字符序列类StringBuilder类,可以大大提高频繁增加字符串地效率。 StringBuilder类的常用方法如下: 该方法用于向字符串生成器中追加内容,可以实现接受任何类型的数据。 该方法用于向字符串生成器的指定位置插入数据内容,可以接受int、float、char和boolean等数据类型或其他对象。 该方法删除字符串中指定的字符,从指定的start位置开始,直到end-1的位置。如果start等于end,则不发生任何改变。 Java基础04—字符串 标签:介绍 清华大学 入门 正则表达式 删除 语句 strong string cond 原文地址:https://www.cnblogs.com/xuliang-daydayup/p/12900890.html
一、String类
1、声明字符串
String str; //声明字符串
String str1 = "hello"; //声明字符串,并赋初值
2、创建字符串
char a[] = {‘a‘,‘b‘,‘c‘,‘d‘}; 等价于
String s = new String(a); -----------> String s = new String("abcd");
char a[] = {‘s‘,‘t‘,‘u‘,‘d‘,‘e‘,‘n‘,‘t‘}; 等价于
String s = new String(a,2,4); ---------> String s = new String("uden");
String str1, str2;
str1 = "hello world";
str2 = "hello world";
public class StringTest {
public static void main(String[] args) {
String s = new String("hello");
String s1 = "hello";
String s2 = "hello";
String s3 = new String("hello");
System.out.println("s=s1? " + (s == s1));
System.out.println("s1=s2? " + (s1 == s2));
System.out.println("s=s3? " + (s == s3));
}
}
输出结果:
s=s1? false
s1=s2? true
s=s3? false
3、连接字符串
public class StringJoin {
public static void main(String[] args) {
String s1 = new String("hello");
String s2 = new String("world");
String s3 = s1 + " " + s2;
System.out.println(s3); //输出hello world
}
}
public class ToString {
public static void main(String[] args) {
int num = 10;
float f1 = 2.34f;
String s1 = num + " " + f1;
System.out.println(s1);
}
}
三、获取字符串信息
(1)获取字符串长度
String str = "hello world";
System.out.println( str.length() ); //输出11
(2)字符串查找
String str = "hello world";
System.out.println( str.indexOf("o") ); //输出4
System.out.println( str.lastIndexOf("l") ); //输出9
(3)获取指定索引位置的字符
String str = "hello world";
char c = str.charAt(6);
System.out.println( c ); //输出w
四、字符串操作
(1)获取子字符串
String str = "hello world";
String substr = str.substring(3);
System.out.println(substr); //输出lo world
String str = "hello world";
String substr = str.substring(3,9);
System.out.println(substr); //输出lo wor
(2)去空格
String str = " hello world ";
String substr = str.trim();
System.out.println(substr);
输出结果:
hello world
(3)字符串替换
replace(char oldChar, char newChar)
String str = "hello world";
String substr = str.replace(‘l‘,‘L‘);
System.out.println(substr);
输出结果:
heLLo worLd
(4)判断字符串的开头与结尾
String str = "hello world";
boolean bool1 = str.startsWith("he");
boolean bool2 = str.startsWith("hE");
System.out.println(bool1); //输出true
System.out.println(bool2); //输出false
String str = "hello world";
boolean bool1 = str.endsWith("ld");
boolean bool2 = str.endsWith("Ld");
System.out.println(bool1); //输出true
System.out.println(bool2); //输出false
(5)判断字符串是否相等
String str1 = "i love java";
String str2 = "i love java";
System.out.println(str1 == str2) //输出true
String str3 = new String("i love java");
String str4 = new String("i love java");
System.out.println(str3 == str4); //输出false
String str1 = "i love java";
String str2 = "i love java";
String str3 = "I LOVE JAVA";
boolean res1 = str1.equals(str2);
boolean res2 = str1.equals(str3);
boolean res3 = str1.equalsIgnoreCase(str3);
System.out.println(res1); //返回true
System.out.println(res2); //返回false
System.out.println(res3); //返回true
(6)按字典顺序比较两个字符串
String str4 = new String("bb");
String str5 = new String("ac")
int res = str4.compareTo(str5)
System.out.println(res); //输出1
(7)字母大小写转换
String str6 = "I Love Java"
String str7 = str6.toLowerCase();
String str8 = str6.toUpperCase()
System.out.println(str7);
System.out.println(str8);
输出结果:
i love java
I LOVE JAVA
(8)字符串分割
String str6 = "Do you Love Java?Yes";
String[] a = str6.split(" |\\?")
//定义空格和问号作为分割符,问号要作转义
for(int i=0; i
五、格式化字符串
1、日期格式化
import java.util.Date;
public class Format {
public static void main(String[] args) {
Date date = new Date();
String day = String.format("%te",date);
String year = String.format("%tY",date);
String mouth = String.format("%tm",date);
System.out.println(year + "-" + mouth + "-" + day);
} //输出2020-05-4
}
2、时间格式化
import java.util.Date;
public class Format {
public static void main(String[] args) {
Date date = new Date();
String day = String.format("%te",date);
String year = String.format("%tY",date);
String mouth = String.format("%tm",date);
String hour = String.format("%tH",date);
String minute = String.format("%tM",date);
String second = String.format("%tS",date);
System.out.println("当前时间:" + year + "-" + mouth + "-" + day + " " + hour + ":" + minute + ":" + second);
} //输出:当前时间:2020-05-4 20:19:09
}
3、常见的日期时间格式化组合
import java.util.Date;
public class Format {
public static void main(String[] args) {
Date date = new Date();
String time = String.format("%tT",date);
String year = String.format("%tF",date);
System.out.println("当前时间:" + year + " " + time);
} //输出:当前时间:2020-05-04 20:23:09
}
六、正则表达式
七、字符串生成器
public class Jerque {
public static void main(String[] args) {
String str = "";
//记录开始时间
long startTime = System.currentTimeMillis();
for(int i=0; i
public class ToString {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder("hello");
builder.insert(5," world");
System.out.println( builder.toString() );
//输出:hello world
}
}
public class ToString {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder("hello world");
builder.delete(2,5);
System.out.println( builder.toString() );
//输出:he world
}
}