概述
java , lang String 类代表字将串。 Java 程序中所有的字符串文字例如" abc “都可以被看作是实现此类的实例。
类 String 中包括用于检查各个字将串的方法,比如用于比较字符串,星素字符串,提取子字特串以及创建具有翻译为大写或小写的所有字符的字符串的副本。
特点
1.字特串不变:字特事的值在创建后不能被更改。
String s1 = " abc ":
s1=s1+ " d ";不是改变s1的值
内存中有“ abc ",“ abcd ”两个对象。s1从指向“ abc ",改变指向。指向了" abcd”。
2.因为 String 对象界不可改的。所以它们可以被共享。
String s1." abc ";
String s2=" abc ":
内存中只有一个 " abc "时对象被创建,同时被:1和s2共享
3." abc "等效于 char [] data =(' a , b , e ').
例如:
String str =" abe ";
相当于◇
char data[] .(' a ‘, ’b ',' e ‘);
练习1 :
public class StringDemo {
public static void main(String[] args) {
//String练习
String s= "abc";
//创建一个String的对象并直接赋值
System.out.println(s);
//打印 s
String s1 = new String();
//创建一个String类的对象 s1
char[] ch = {'a','b','c'};
//创建一个字符数组并赋值
String s2 = new String(ch);
//创建一个String的对象 s2
byte[] bytes = {65,66,67};
//创建一个bytes(字节)类的对象bytes
String s3 = new String(bytes);
//创建一个String的对象 s3
String name = "abcdef";
//创建一个String的对象 name 并直接赋值
System.out.println("s1的值"+s1);
//打印输出 s1
System.out.println("s2的值"+s2);
//打印输出 s2
System.out.println("s3的值"+s3);
//打印输出 s3
if(s2.equalsIgnoreCase(s3))
//使用String中的equalsIgnoreCase()比较方法,比较 s2 、s3的大小
System.out.println("两个相等");
else
System.out.println("两个不相等");
System.out.println("s2的长度是" + s2.length());
//使用String类中的length()方法确定 s2 的长度
System.out.println("s2的组合串时" + s2.concat("def"));
//使用 String 类中的字符串连接方法 concat() ,将 “def” 连接在s2的后面
System.out.println("s2的第二个索引位置的字符是"+s2.charAt(2));
//使用String类中的charAt()方法查看指定位置的值
System.out.println("bc在s2中第一次出现的位置是"+s2.indexOf("bc"));
//使用String类中的indexOf()方法确定指定字符串在 s2 对象中第一次出现的位置
System.out.println("截取name串的结果是"+name.substring(1,2));
//使用String类中的substring()方法对 name 对象进行指定位置的字符串截取
char[] nameChar = new char[20];
nameChar = name.toCharArray();
//使用String类中的toCharArray()方法,将 name对象(字符串)转换成新的字符数组
System.out.println(nameChar.length);
for (int i = 0; i < nameChar.length; i++) {
System.out.println(name+s1);
}
System.out.println();
byte[] nameBytes = new byte[20];
nameBytes = name.getBytes();
for (int i = 0; i < nameBytes.length; i++) {
System.out.print(nameBytes[i]+" ");
//将字符转换成数字
}
System.out.println();
}
}
练习2:
import java.util.Scanner;
public class StringExec {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//创建一个scanner对象 并使用标准输入(键盘输入)System.in
String s = scanner.nextLine();
//使用Scanner类中的nextLine()方法,将从键盘输入的值赋值给 对象 s
int lowerCharacter = 0;
//记录小写字母的变量
int upperCharacter = 0;
//记录大写字母的变量
int numCharacter = 0;
//记录数字的变量
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
//获取对象 s 内指定下标的内容
if(ch >= 'a' && ch <= 'z')
lowerCharacter ++;
else
if(ch >= 'A' && ch <= 'Z')
upperCharacter++;
else
if(ch >= '0' && ch <= '9')
numCharacter++;
else
System.out.println("输入错误!");
}
System.out.println("小写字母的个数是:"+lowerCharacter);
System.out.println("大写字母的个数是:"+upperCharacter);
System.out.println("数字字母的个数是:"+numCharacter);
}
}