黑马程序员_第九天

原创 2012年03月29日 09:41:05

----------------------android培训java 培训、期待与您交流! ----------------------



 

1String对象的初始化

  String s =“abc”;

 s = Java语言”;

其实按照面向对象的标准语法,其格式应该为:

  String s = newString(“abc”);

  s = new String(Java语言”);

 只是按照面向对象的标准语法,在内存使用上存在比较大的浪费。例如String s = new String(abc);实际上创建了两个String对象,一个是”abc”对象,存储在常量空间中,一个是使用new关键字为对象s申请的空间。

2、字符串的常见操作

acharAt方法

该方法的作用是按照索引值(规定字符串中第一个字符的索引值是0,第二个字符的索引值是1,依次类推),获得字符串中的指定字符。例如:

String s = “abc”;

char c = s.chatAt(1);

 则变量c的值是’b’。

 

  eequals方法

该方法的作用是判断两个字符串对象的内容是否相同。如果相同则返回true,否则返回false。例如:

    String s =“abc”;

  String s1 = newString(“abc”);

  boolean b =s.equals(s1);

 而使用“==”比较的是两个对象在内存中存储的地址是否一样。例如上面的代码中,如果判断:

  boolean b = (s== s1);

 则变量b的值是false,因为s对象对应的地址是”abc”的地址,而s1使用new关键字申请新的内存,所以内存地址和s的”abc”的地址不一样,所以获得的值是false

 String类中存在一个类似的方法equalsIgnoreCase,该方法的作用是忽略大小写比较两个字符串的内容是否相同。例如:

String s = “abc”;

String s1 =”ABC”;

 boolean b = s.equalsIgnoreCase (s1);

 则变量b的值是true

   

 gindexOf方法

 该方法的作用是查找特定字符或字符串在当前字符串中的起始位置,如果不存在则返回-1。例如:

 String s =“abcded”;

 int index =s.indexOf(‘d’);

 int index1 =s.indexOf(‘h’);

 则返回字符d在字符串s中第一次出现的位置,数值为3。由于字符h在字符串s中不存在,则index1的值是-1

 当然,也可以从特定位置以后查找对应的字符,例如:

int index = s.indexOf(‘d’,4);

 则查找字符串s中从索引值4(包括4)以后的字符中第一个出现的字符d,则index的值是5

 由于indexOf是重载的,也可以查找特定字符串在当前字符串中出现的起始位置,使用方式和查找字符的方式一样。

 另外一个类似的方法是lastIndexOf方法,其作用是从字符串的末尾开始向前查找第一次出现的规定的字符或字符串,例如:

String s = “abcded”;

 int index = s.lastIndexOf(‘d’);

 index的值是5

 hlength方法

 该方法的作用是返回字符串的长度,也就是返回字符串中字符的个数。中文字符也是一个字符。例如:

 String s =“abc”;

String s1 = Java语言”;

int len = s.length();

int len1 = s1.length();

 则变量len的值是3,变量len1的值是6

  ireplace方法

 该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例如:

  String s =“abcat”;

 String s1 =s.replace(‘a’,’1’);

 该代码的作用是将字符串s中所有的字符a替换成字符1,生成的新字符串s1的值是”1bc1t”,而字符串s的内容不发生改变。

如果需要将字符串中某个指定的字符串替换为其它字符串,则可以使用replaceAll方法,例如:

  String s =“abatbac”;

String s1 = s.replaceAll(“ba”,”12”);

 该代码的作用是将字符串s中所有的字符串”ab”替换为”12”,生成新的字符串”a12t12c”,而字符串s的内容也不发生改变。

 如果只需要替换第一个出现的指定字符串时,可以使用replaceFirst方法,例如:

 String s =“abatbac”;

  String s1 = s.replaceFirst (“ba”,”12”);

 该代码的作用是只将字符串s中第一次出现的字符串”ab”替换为字符串”12”,则字符串s1的值是”a12tbac”,字符串s的内容也不发生改变。

     jsplit方法

 该方法的作用是以特定的字符串作为间隔,拆分当前字符串的内容,一般拆分以后会获得一个字符串数组。例如:

 String s =“ab,12,df”;

 String s1[] =s.split(“,”);

 该代码的作用是以字符串”,”作为间隔,拆分字符串s,从而得到拆分以后的字符串数字s1,其内容为:{ab,12,df}

 该方法是解析字符串的基础方法。

 如果字符串中在内部存在和间隔字符串相同的内容时将拆除空字符串,尾部的空字符串会被忽略掉。例如:

   String s =“abbcbtbb”;

  String s1[] =s.split(“b”);

 则拆分出的结果字符串数组s1的内容为:{a,””,c,t}。拆分出的中间的空字符串的数量等于中间间隔字符串的数量减一个。例如:

 String s =“abbbcbtbbb”;

 String s1[] =s.split(“b”);

 则拆分出的结果是:{a,””,””,c,t}。最后的空字符串不论有多少个,都会被忽略。

 如果需要限定拆分以后的字符串数量,则可以使用另外一个split方法,例如:

  String s =“abcbtb1”;

 String s1[] =s.split(“b”,2);

 该代码的作用是将字符串s最多拆分成包含2个字符串数组。则结果为:{a,cbtb1}

 如果第二个参数为负数,则拆分出尽可能多的字符串,包括尾部的空字符串也将被保留。

kstartsWith方法

 该方法的作用和endsWith方法类似,只是该方法是判断字符串是否以某个字符串作为开始。例如:

 String s =“TestGame”;

 boolean b =s.startsWith(“Test”);

 则变量b的值是true

  lsubstring方法

 该方法的作用是取字符串中的“子串”,所谓“子串”即字符串中的一部分。例如“23”是字符串“123”的子串。

 字符串“123”的子串一共有6个:”1”、”2”、”3”、”12”、”23”、”123”。而”32”不是字符串”123”的子串。

 例如:

  String s =“Test”;

  String s1 =s.substring(2);

 则该代码的作用是取字符串s中索引值为2(包括)以后的所有字符作为子串,则字符串s1的值是”st”。

 如果数字的值和字符串的长度相同,则返回空字符串。例如:

 String s =“Test”;

  String s1 =s.substring(4);

 则字符串s1的值是””。

 如果需要取字符串内部的一部分,则可以使用带2个参数的substring方法,例如:

 String s =“TestString”;

 String s1 =s.substring(2,5);

 则该代码的作用是取字符串s中从索引值2(包括)开始,到索引值5(不包括)的部分作为子串,则字符串s1的值是”stS”。

 下面是一个简单的应用代码,该代码的作用是输出任意一个字符串的所有子串。代码如下:

     String s = “子串示例”;

     int len =s.length(); //获得字符串长度

     for(intbegin = 0;begin < len 1;begin++){ //起始索引值

   for(int end =begin + 1;end <= len;end++){ //结束索引值

            System.out.println(s.substring(begin,end));

            }

                }

 在该代码中,循环变量begin代表需要获得的子串的起始索引值,其变化的区间从第一个字符的索引值0到倒数第二个字符串的索引值len-2,而end代表需要获得的子串的结束索引值,其变化的区间从起始索引值的后续一个到字符串长度。通过循环的嵌套,可以遍历字符串中的所有子串。

 

 

StringBuffer

字符串的组成原理就是通过该类实现的。

StringBuffer可以对字符串内容进行增删。

StringBuffer是一个容器。

StingBuffer 是可变长度的

 

 

----------------------android培训java 培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima

黑马程序员-Java基础学习第九天笔记

------- android培训、java培训、期待与您交流! ---------- 4-1 初识JavaBean与内省 ·JavaBean是一种特殊的Java类,主要用于传递数据信息,...

【黑马程序员】面向对象(五) 第九天

-------  android培训、java培训、java学习型技术博客、期待与您交流! ---------- 知识点 异常处理能够使一个方法给它的调用者抛出一个异常。 异常发生在一个方法...

黑马程序员--java学习笔记第九天

内部类 1.      将一个类定义在另一个类的里面,对里面那个类就称为内部类 2.      访问特点 a)        内部类可以直接访问外部类中的成员,包括私有成员;因为内部类持有外部类的引用...

黑马程序员——>第九天<面向对象(内部类-匿名内部类-异常)>

-------android培训、java培训、期待与您交流------- 01面向对象(内部类访问规则) 将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类) /* 内部...

黑马程序员——第九天(Java面向对象-内部类-异常)

---------------------- android培训、java培训、期待与您交流! ---------------------- 一.面向对象(内部类访问规则) 内部类 将一个类定义...

黑马程序员--- 学习笔记(第九天)

内部类: 将一个类定义在一个类里面,对里面的那个类称为 内部类(内置类 ,嵌套类); 内部类访问规则: 1.内部类可以直接访问外部类中的成员,包括私有 2.外部类要访问内部类,必须先建立内部...

黑马程序员--IOS基础第九天(C语言)

 选择排序:把最小的放在第一个,然后找其他数据中最小的,放在第二,以此类推 二维数组: 定义:      类型说明符 数组名[常量表达式1...

黑马程序员--Java基础学习(面向对象)第九天

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- Java基础学习(面向对象)第九天 一,内部类访问规则 内部类的访问规则: 1,内部类可...

黑马程序员---代码块,继承。第九天学习笔记

1.      第八天回顾,构造方法(熟练写)和类名一样的方法,成员变量赋值,名字和类名一致,不要写返回值,别写return. 重载形式的构造方法,提供空参数,提供全部赋值的方法。 this关键字,...

黑马程序员_第九天_项目(一)交通灯管理系统

---------------------- android培训、java培训、期待与您交流! ----------------------            交通灯是我们日常生活中总能看到的,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员_第九天
举报原因:
原因补充:

(最多只允许输入30个字)