首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

黑马软件工程师_java学习日记_String类的常见用法

2013-04-02 
黑马程序员_java学习日记_String类的常见用法------- android培训、java培训、期待与您交流! ----------?1、

黑马程序员_java学习日记_String类的常见用法

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

?

1、注意:String s1 ="abc"?? 注意:s1是一个类类型的变量,“abc”字符串是一个特殊的对象。

?

字符串最大的特点,一旦被初始化就不可以改变了。改变的是地址。s1 ="ok"这个是改变的地址。

?

2.字符串有自己的独特方式,判断内容是否相同。

?

?? String类复写了Object类中的equels()方法,该方法用于判断字符串是否相同,

?

? String s1 ="abc"和String s1 = new String("abc");有什么区别。

?

? s1在内存中有一个对象。

?

? s2在内存中有两个对象。

?

3、字符串里面的方法;

?

?? 获取:

?

?? 1)获取字符串的长度: int length();方法。而获取数组里面的长度用的.length是属性不是方法。

?

?? 2)获取某个位置上的字符:char charAt(int index);

?

?? 3) 获取字符串的位置;

?

????? int indexof(int ch);返回ch在字符串中第一次出现的位置。

?

????? int indexof(int ch,int fromIndex),从fromIndex指定位置开始,获取ch在字符串中第一次出现的位置。

?

????? int indexOf(String str) ;反回str在字符串中第一次出现的位置。

?

????? int indexof(String str,int fromIndex);从fromIndex指定位置开始,反回str在字符串中第一次出现的位置。

?

?? 4)反向索引字符串:

?

????? int lastIndexof(int ch);返回ch在字符串中最后一次出现的位置。

?

????? int lastIndexof(int ch,int fromIndex),从fromIndex指定位置开始,获取ch在字符串中最后一次出现的位置。

?

????? int lastIndexof(String str) ;反回str在字符串中最后一次出现的位置。

?

????? int lastIndexof(String str,int fromIndex);从fromIndex指定位置开始,反回str在字符串中最后一次出现的位置。

?

?? 判断:

?

??? 1)字符串中是否包含某一个字串.

?

??? boolean contains(str);

?

??? 特殊之处:indextof(str):可以索引str第一次出现的位置,如果返回-1,表示该str不在字符串中存在

?

???????注意;indextof(str)该方法既可以判断包含关系,又可以判断出现的位置。

?

??? 2)字符串中是否有内容:

?

?????? boolean isEmpty()? ;原理就是判断长度是否为0.

?

??? 3)字符串是否与指定位置结尾:boolean endsWith(String suffix)

?

?????? 字符串是否与指定位置开头:boolean endsWith(String suffix)

?

?????? 判断字符串的内容是否相同 boolean equals(Object str)

?

?????? 判断字符串的内容是否相同,忽略大小写; boolean equalsIgnoreCase(Object str);

?

4、字符串的转换:

?

?? 1)将字符数组转换成字符串;

?

????? 构造函数方式:

?

????? String(char[] ch)

?

????? String(char[],offset,count);将字符数组中的一部分转化成字符串。

?

????? 使用:就是创建对象的时候初始化字符数组,变成字符串。

?

?????????????? char[] ch = {'a','b','d','f','g'}

?

?????? ?????? String s =? new String(ch);

?

?????????????? String s =? new String(ch,offset,count);

?

????? 静态方法:下面这两个方法也可以将字符数组转换成字符串。

?

??????????????? static String copyValueOf(char[] data);

?

??????????????? static String copyValueOf(char[] data,int offset, int count)

?

????????????? static String ValueOf(char[]);????

?

?? 2)将字符串转化成数组。

?

?????? char[] toCharArray()

?

?? 3)将字节数组转化成字符串。

?

?????? 构造函数:

?

?????? String(byte[] ch)

?

?????? String(byte[],offset,count);将字符数组中的一部分转化成字符串。

?

?? 3)将字符串转化为字节数组

?

?????? byte[] getBytes()??

?

?? 4)将基本数据类型转换成字符串。

?

????? static String ValueOf(int);

?

????? static String ValueOf(double);???

?

????? static String ValueOf(3);等于3+“”他们是一样的效果,前面写的比较专业。

?

5、切割和替换。

?

?? 切割:String[] split(regex);

?

?? 替换:String replace(oldchar,newchar);

?

?? 获取字串:

?

?? 获取字符串中的一部分。

?

???????? String substring(begin);

?

???????? 获取的字符串是从头到尾。

?

????? ?String substring(begin,end);

?

???????? 获取的是包括头,但是不包括尾;重点:

?

6、字符串的转换,去除空格,比较;

?

? 1)字符串转换大小写。

?

???? String toUpperCase();转换成大写

?

???? String toLowerCase();转换成小写。

?

? 2)去除空格(两端的空格)

?

???? String trim();

?

? 3)对两个字符串进行自然顺序的比较。

?

???? int compareTo(String)

?

???? int a = s1.compareTo(s2)

?

???? 根据a的值来判断大小;

?

???? 注意:返回值为0是相等、

?

?????????? 返回值大于0是前面的大于后面的字符串。

?

????? ?? 返回值小于0是前面的小于后面的字符串。

?

7、将字符串反转。

?

?? 步骤:1)将字符串变成数组。

?

???????? 2)对数组反转

?

???????? 3)将数组变成字符串、

?

8、StringBuffer是字符串缓冲区。

?

?? StringBuffer是一个容器。容器的特点;数据类型不确定,最终要变成字符串的时候,我们会用StringBuffer()容器;

?

?? 1)长度是可以变化的。

?

?? 2)可以直接操作多个数据类型。

?

?? 3)最后会通过toString()方法变成字符串。

?

?? append();是添加的意思;

?

?? StringBuffer缓冲区是面盆理论。注意你往里里面添加任何东西,最后都是在同一个容器当中,不会产生新的缓冲区对象。

?

?? 所以我们创建有一个对象,之后直接append()里面添加东西就行了,不用复制给新的对象了,直接就到缓冲区中了。

?

?? 而字符串String这样写就会产生新的对象。

?

?? 1)存储:

?

?? StringBuffer append();将指定的数据作为参数添加到已有的数据结尾处。

?

?? StringBuffer insert(index,数据);可以将数据插入指定的index位置。

?

?? 2)删除

?

???? StringBuffer delete(start,end);删除缓冲区中的数据。包含start,不包含end。

?

???? StringBuffer deleteCharAt(index)

?

?? 清空缓冲区:

?

?? sb.delete(0,sb.length());这个是清除缓冲区的意思。

?

?? 3)获取:

?

???? 获取字串;

?

???? String substring (int start,int end);

?

?? 5)反转:

?

??? StringBuffer? reverse();

?

?? 6) 将缓冲区中指定的数据存储到指定字符数组中。

?

????? void getChars (int srcBegin,int srcEnd,char[] dst,int dstBegin)

?

9、java的升级有三种情况,

?

?? 第一提高效率。第二简化书写,第三;提高安全性。

?

?? jdk1.5版本出现之后,我们又有了一个可以替代StringBuffer的类,为StringBuilder

?

?? 两者的区别:

?

?? StringBuffer是线程同步。

?

?? StringBuilder 是线程不同步。

?

?? 以后开发建议使用StringBuilder,因为它提高效率,至于线程不同步,我们可以通过锁来完成,

?

?? 单线程的时候,直接用,对于线程不存在安全问题。

?

10、基本数据类型的对象包装类;

?

?? byte?????? Byte

?

?? short????? short

?

?? int??????? Integer

?

?? long?????? Long

?

?? boolean??? Boolean

?

?? float????? Float

?

?? double???? Double

?

?? char?????? Character

?

基本数据类型对象包装类的最常见作用;

?

就是用于基本数据类型和字符串之间做转换

?

基本数据类型转换成字符串。

?

?? 基本数据类型+""

?

?? 基本数据类型.toString(基本数据类型值);

?

?? 如:Integer.toString(34);

?

?? 字符串转换成基本数据类型。下面都是调用的静态方法。

?

?? int a = Integer.parseInt("123");

?

?? double a = Double.parseDouble("12.13");

?

?? boolean a = Boolean.parseBoolean("true");

?

?? 用创建对象的方式,调用intVlue()方法来转换成基本数据类型值。

?

?? Integer i = new Integer("123");

?

?? int num = i.intValue();

?

十进制转化成其他进制;

?

? toBinaryString();

?

? toHexString();

?

? toOctalString();

?

其他进制转化成十进制。

?

? 注意:参数的用法;

?

? parseInt(string,radix);注意;parsrInt("1010101",2);是将101010的二进制转换成10进制数。

?

? parseInt(string,radix);注意;parsrInt("3c",16);??? 是将3c的十六进制转换成10进制数。

?

11、jdk1.5以后出现的新特性;

?

??? Integer x = new Integer(4);

?

??? Integer x = 4;这两种写法现在是一样的。

?

???? 4相当于new integer(4);

?

??? 这里面实现了自动装箱的动作;

?

? 2)Integer? x=? x + 2;? 这个也是可以的,x是对象,2是基本数据类型性,这时我们先将x拆箱,然后和2相加,然后在把相加??????? 后的值装箱赋值给Integer类型的 x。

?

12、三目运算符;

?

??? 一个小例子:s1和s2是传进来的不确定大小的参数。

?

?? String max="",min="";

?

?? max =(s1.length() > s2.length())? s1:s2;

?

?? min = (max != s1)? s1:s2

?

热点排行