Java学习第三天
今天继续第二章的学习
String类的定义:String在java中是一个比较特殊的类,因为其自己可以做一种数据类型直接定义变量,如下:
String str = "hello";
String str = new String ("hello");
String两种不同定义地理解:
String str = "hello"; //可以把str理解为一个char*,str指向数据段中的字符串"hello"。
String str = new String ("hello");//是new了一个对象,堆空间分配了一块内存,把对象放在里面,str 指向这个对象
上面两者的区别:
String str 1= "hello";
String str 2= "hello";
//当定义str2的时候,系统会先检测数据段里是否已经有了“hello”,如果有了那么str2直接指向这个“hello”,这是系统的优化。也就是说不会单独再在数据段中存储“hello”,str1和str2指向的是同一个数据段,也就是str1和str2代表的数据段地址也是一样的。
String str 3= new String ("hello");
String str 4= new String ("hello");
//str4是重新new的一个对象,是在堆空间又单独存储的,也就是说str3和str4的地址是不一样的,但是存储内容是一样的
下面通过例子来体现
3.1一个完整的文件名字包括文件名与类型的扩展名,例如,a.doc, b.txt, film.rbmv等,文件名与类型的扩展名之间用.分离。请使用C++中string类型,编写一个程序实现文件名与类型扩展名的分离,例如,输入是字符串a.doc,输出是两个字符串a和doc。要求使用string类型实现。
3.2字符串查找判断
输入两个字符串s1和s2,判断s1是否包含s2,给出结论,若包含,还需计算s1中s2的个数。要求使用string类型。