黑马程序员--------------String类

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

string类

      String类常用功能:

       1,获取:

          1.1,int length():获取字符串中字符的长度(个数)。它与获取数组中的长度不同,数组中的length是基本属性,所以数组中的获取长度的方法是:int length。后面没有括号。

          1.2,char charAt(int index):根据位置获取字符串中的字符

           1.3,int indexOf(int ch):返回指字字符在此字符串中第一次出现的位置。

           1.4,int indexOf(int ch,int formIndex):返回指定字符串在指定索引位置后第一次出现的位置。

           1.5,int indexOf(String str):返回指定字符串在此字符串中第一次出现的位置。

           1.6,int lastIndexOf(int ch):返回指定字符在此字符串最后出现的位置。

           1.7,String substring(int beginIndex):返回一个字符串,从指定位置到未尾处(substring中的string是小写!)

           1.8,Striing substring(int beginIndex,int endIndex):返回一个从指定位置到指定未尾处的字符串,包含头不包含尾。

     2, 转换

           2.1,byte[] getBytes():将字符串转换成字节数组。

           2.2,char[] toCharArray():将字符串转换成字符数组。

           2.3,static String valueOf(int i):将一个整数转换成字符串。

           2.4,String toLowerCase():将字符串中的字符都转换成小写

           2.5,String toUpperCase():将字符串的字符都转转换成大写

    3,替换

          3.1,String replace(char oldChar,char newChar):用新字符替换旧字符

          3.2,String replace(String target,String replacement):用新的字符串替换旧的字符串

     4,判断

          4.1,boolean equals(Object anObject):判断两个字符串中的内容是否相同

         4.2,boolean contains(String s):判断一个字符串是否包含另一个字符串

         4.3,  boolean startsWith(String suffix): 判断此字符串是否是以指定的字符串作为开头

         4.4,boolean endsWith(String suffix):  判断此字符串是否是以指定的字符串作为结尾

     5, 分割

          5.1,String[] split(String regex):根据给定的正则表达式的匹配来拆分些这符串

         5.2,String trim():去除字符串前后的空格

练习:给定一个字符串数组,按照字典顺序进行排序{"cba","def","awerk","ewodr"}

      思路:将字符数组进行遍历,用字符串对象中提供的compareTo()方法直接进行比较

     class  Demo1
{
public static void main(String[] args) 
{
String [] arr={"cba","def","awerk","ewodr"};
sop(arr);
stringSort(arr);
sop(arr);
}
public static void stringSort(String[] arr)
{
for(int x=0;x<arr.length-1;x++)
{
for(int  y=x+1;y<arr.length;y++)
{
int num=arr[x].compareTo(arr[y]);
if(num>0)
swap(arr,x,y);
}
}
}
public static void swap(String[] arr,int x,int y)
{
String temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
public static void sop(String[] arr)
{
System.out.print("[");
for(int x=0;x<arr.length;x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+",");
else
System.out.print(arr[x]+"]");
}


System.out.println();
}
}

 StringBuilder与StringBuffer

     因为String与String数组它们是不可变的,一旦创建就不会改变。所以有局限性,而StringBuffer和StringBuilder是一个容器,它们中的内容是可变的,可以通过append()方法往里添加各种类型的数据。

StringBuffer

(1)它和String的区别
它是缓冲区可变长度的。
(2)构造方法
StringBuffer() 构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。
StringBuffer(int num) 构造一个不带字符,但具有指定初始容量的字符串缓冲区。
StringBuffer(String str) 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
(3)常用方法
A:增加数据
append :添加各种类型的数据
insert : 在容器指定位置插入各种类型的数据。
B:删除数据
deleteCharAt : 删除指定位置的字符
delete 还可以用于清空StringBuffer的缓冲区
C:替换
replace
D:获取 
charAt 
E:长度和容量
length() 元素的个数
capacity 元素的理论值
F:获取元素的位置
indexOf
lastIndexOf
G:截取
substring(int start)
substring(int start,int end)
H:反转
reverse
(4)字符串和StringBuffer的转换
String-->StringBuffer通过构造:
如:StringBuffer sb = new StringBuffer(String str)
StringBuffer--String通过toString方法 
如:StringBuffer sb = new StringBuffer();
  sb.toString();


3:StringBuilder
和StringBuffer的功能是一样的,但是有区别:
StringBuffer(JDK1.0)是线程安全的(线程同步)。
StringBuilder(JDK1.5)不保证线程安全(线程不同步)。

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值