总结:
String:
字符串是常量,创建之后不可改变。字符串字面值存储在字符串池中,可以共享。
String s = "Hello"; 产生一个对象,保存在池中
String s2 = new String("World"); 产生两个对象,池、堆各一个
习题:
C9.7 从命令行上读入一个字符串,用两种不同的方法,把该字符串转为一个int类型:
I. 把 String 直接转换为 int
Scanner input=new Scanner(System.in);
int i=Integer.parseInt(input.next());
System.out.println(i);
II. 把String 转换为Interger,再把Integer转换为 int 类型:
Scanner input=new Scanner(System.in);
String s=input.next();
Integer ii=new Integer(s);
int i=ii;
C9.8 有如下代码:
class Student{
private int age;
private String name;
public Student(){}
public Students(String name,int age){
this.name=name;
this.age=age;
}
public String toString(){
return name+" "+age;
}
}
public class TestStudent{
public static void main(String[] args){
Student stu1=new Stundent("tom",18);
System.out.println(/*1*/);
}
}
问:在1 位置,填入什么代码能编译通过?ABC
A:stu1+ " " +100
B:100+" "+stu1
C:" "+100+stu1
D:stu1+100+" " 不行 “对象+数字”
C9.11 获取邮箱“zhengcg@zparkhr.com”中的用户名 “zhengcg”
String s="zhengcg@zparkhr.com";
System.out.println(s.substring(0, s.indexOf("@")));
C9.12 验证邮箱“zhengcg@zparkhr.com”是否合法
String s="zhengcg@zparkhr.com";
System.out.println(s.endsWith("@zparkhr.com"));
C9.13 将随机获取的UUID中的“-”去掉:
String s=UUID.randomUUID().toString();
System.out.println(s);
String[] ss=s.split("-");
String sss="";
for (int i = 0; i < ss.length; i++) {
sss=sss+ss[i];
}
System.out.println(sss);
C9.14 从"ABCDEFGhijklmn1234567"中用StringBuilder随机4个字符拼成字符串:
String s="ABCDEFGhijklmn1234567";
int r;
Random random=new Random();
StringBuilder ss=new StringBuilder();
for(int i=0;i<4;i++){
r=random.nextInt(21);
ss.append(s.charAt(r));
}
System.out.println(ss);
C9.15 给定一个由数字组成的字符串,统计其中每个数字出现的字数:
String str = "1239586838923173478943890234092";
int[] c = new int[10];
for(int i = 0 ; i < str.length(); i++){
char ch = str.charAt(i);
int a = ch-48;
c[a]++;
}
for(int i : c){
System.out.println(i);
}