1.1 String类概述
概述
java.lang.String
类代表字符串。Java程序中所有的字符串文字(例如"abc")都可以被看作是实现此类的实例
String 中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻译为大写或小写的所有字符的字符串的副本。
特点 1.字符串不变:字符串的值在创建后不能被更改。
代码语言:javascript复制String s1 = "abc"; s1 = "d";
System.out.println(s1); // "abcd"
// 内存中有"abc","abcd"两个对象,s1从指向"abc",改变指向,指向了"abcd"。
2.因为String对象是不可变的,所以它们可以被共享。
代码语言:javascript复制String s1 = "abc";
String s2 = "abc";
// 内存中只有一个"abc"对象被创建,同时被s1和s2共享。
3."abc"等效于 char[] data = {'a','b','c'}
。
1.2 使用步骤
- 查看类
java.lang.String
此类不需要导入。
- 查看构造方法
public String()
;初始化新创建的 String对象,以使其表示空字符序列。public String(char[] value)
: 通过当前参数中的字符数组来构造新的String。public String(byte[] bytes)
: 通过使用平台的默认字符集解码当前参数中的字节数组来构造新的String。- 构造举例,代码如下:
1.3常用方法
判断功能的方法
public boolean equals (Object anObject)
:将此字符串与指定对象进行比较。public boolean equalsIgnoreCase (String anotherString)
: 将此字符串与指定对象进行比较,忽略大小写
方法演示,代码如下:
Object 是” 对象”的意思,也是一种引用类型。作为参数类型,表示任意对象都可以传递到方法中。
获取功能的方法
public int length ()
返回此字符串的长度。public String concat (String str)
: 将指定的字符串连接到该字符串的末尾。public char charAt (int index)
: 返回指定索引处的 char值。public int indexOf (String str)
该字符串第一次出现的索引位置public String substring (int beginIndex)
: 返回一个子字符串,从begin Index开始截取字符串到字符串结尾public String substring (int beginIndex, int endIndex)
: 返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex。
方法演示,代码如下:
代码语言:javascript复制public class String_Demo02 {
public static void main(String[] args) {
//创建字符串对象
String s = "helloworld";
// int length():获取字符串的长度,其实也就是字符个数
// System.out.println(s.length());
// System.out.println("‐‐‐‐‐‐‐‐");
// String concat (String str):将将指定的字符串连接到该字符串的末尾.
// String s = "helloworld";
String s2 = s.concat("**hello itheima");
// char charAt(int index):获取指定索引处的字符
// System.out.println(s.charAt(0));
// System.out.println(s.charAt(1));
// System.out.println("‐‐‐‐‐‐‐‐");
// int indexOf(String str):获取str在字符串对象中第一次出现的索引,没有返回‐1
// System.out.println(s.indexOf("l"));
// System.out.println(s.indexOf("owo"));
// System.out.println(s.indexOf("ak"));
System.out.println("‐‐‐‐‐‐‐‐");
// String substring(int start):从start开始截取字符串到字符串结尾
// System.out.println(s.substring(0));
// System.out.println(s.substring(5));
// System.out.println("‐‐‐‐‐‐‐‐");
// String substring(int start,int end):从start到end截取字符串。含start,不含end。
// System.out.println(s.substring(0, s.length()));
// System.out.println(s.substring(3,8));
}
}
public char[] toCharArray ()
: 将此字符串转换为新的字符串数组public byte[] getBytes ()
: 使用平台默认的字符集将该String编码转换为新的字节数组public String replace (CharSequence target, CharSequence replacement)
: 将与target匹配的字符串使用replacement字符串替换。
方法演示,代码如下:
代码语言:javascript复制public class String_Demo03 {
public static void main(String[] args) {
//创建字符串对象String s = "abcde";
// char[] toCharArray():把字符串转换为字符数组
// char[] chs = s.toCharArray();
for (int x = 0; x < chs.length; x ) {
System.out.println(chs[x]);
}
System.out.println("‐‐‐‐‐‐‐‐‐‐‐");
// byte[] getBytes ():把字符串转换为字节数组
// byte[] bytes = s.getBytes();
for (int x = 0; x < bytes.length; x ) {
System.out.println(bytes[x]);
}
System.out.println("‐‐‐‐‐‐‐‐‐‐‐");
// 替换字母it为大写IT
// String replace = str.replace("it", "IT");
// System.out.println(replace);
// ITcast ITheima System.out.println("‐‐‐‐‐‐‐‐‐‐‐");
}
}
CharSequence 是一个接口,也是一种引用类型。作为参数类型,可以把String对象传递到方法中。
分割功能的方法
public String[] split(String regex)
: 将此字符串按照给定的regex(规则)拆分为字符串数组。
方法演示,代码如下:
1.4 String类的练习
拼接字符串 定义一个方法,把数组{1,2,3}按照指定个格式拼接成一个字符串。格式参照如下:
代码语言:javascript复制public class StringTest1 {
public static void main(String[] args) {
//定义一个int类型的数组
// int[] arr = {1, 2, 3};
//调用方法
String s = arrayToString(arr);
//输出结果System.out.println("s:" s);
}
/*
*写方法实现把数组中的元素按照指定的格式拼接成一个字符串
*两个明确:
*返回值类型:String
*参数列表:int[] arr
*/
public static String arrayToString(int[] arr) {
// 创建字符串s
String s = new String("[");
// 遍历数组,并拼接字符串
for (int x = 0; x < arr.length; x ) {
if (x == arr.length - 1) {
s = s.concat(arr[x] "]");
} else {
s = s.concat(arr[x] "#");
}
}
return s;
}
}
统计字符个数 键盘录入一个字符,统计字符串中大小写字母及数字字符个数