java中截取字符串的⽅式
1、length() 字符串的长度
  例:char chars[]={'a','b'.'c'};
    String s=new String(chars);
    int len=s.length();
2、charAt() 截取⼀个字符
  例:char ch;
    ch="abc".charAt(1); 返回'b'
3、getChars() 截取多个字符
  void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)
  sourceStart指定了⼦串开始字符的下标,sourceEnd指定了⼦串结束后的下⼀个字符的下标。因此,⼦
串包含从sourceStart到sourceEnd-1的字符。接收字符的数组由target指定,target中开始复制⼦串的下标值是targetStart。
 例:String s="this is a demo of the getChars method.";
    char buf[]=new char[20];
    s.getChars(10,14,buf,0);
4、getBytes()
  替代getChars()的⼀种⽅法是将字符存储在字节数组中,该⽅法即getBytes()。
5、toCharArray()
6、equals()和equalsIgnoreCase() ⽐较两个字符串
7、regionMatches() ⽤于⽐较⼀个字符串中特定区域与另⼀特定区域,它有⼀个重载的形式允许在⽐较中忽略⼤⼩写。
  boolean regionMatches(int startIndex,String str2,int str2StartIndex,int numChars)
  boolean regionMatches(boolean ignoreCase,int startIndex,String str2,int str2StartIndex,int numChars)
8、startsWith()和endsWith()
  startsWith()⽅法决定是否以特定字符串开始,endWith()⽅法决定是否以特定字符串结束字符串replace函数
9、equals()和==
  equals()⽅法⽐较字符串对象中的字符,==运算符⽐较两个对象是否引⽤同⼀实例。
  例:String s1="Hello";
    String s2=new String(s1);
    s1.eauals(s2); //true
    s1==s2;//false
10、compareTo()和compareToIgnoreCase() ⽐较字符串
11、indexOf()和lastIndexOf()
  indexOf() 查字符或者⼦串第⼀次出现的地⽅。
  lastIndexOf() 查字符或者⼦串是后⼀次出现的地⽅。
12、substring()
  它有两种形式,第⼀种是:String substring(int startIndex)
        第⼆种是:String substring(int startIndex,int endIndex)
13、concat() 连接两个字符串
14 、replace() 替换
  它有两种形式,第⼀种形式⽤⼀个字符在调⽤字符串中所有出现某个字符的地⽅进⾏替换,形式如下:
  String replace(char original,char replacement)
  例如:String s="Hello".replace('l','w');
  第⼆种形式是⽤⼀个字符序列替换另⼀个字符序列,形式如下:
  String replace(CharSequence original,CharSequence replacement)
15、trim() 去掉起始和结尾的空格
16、valueOf() 转换为字符串
17、toLowerCase() 转换为⼩写
18、toUpperCase() 转换为⼤写
19、StringBuffer构造函数
  StringBuffer定义了三个构造函数:
  StringBuffer()
  StringBuffer(int size)
  StringBuffer(String str)
  StringBuffer(CharSequence chars)
  (1)、length()和capacity()
    ⼀个StringBuffer当前长度可通过length()⽅法得到,⽽整个可分配空间通过capacity()⽅法得到。
  (2)、ensureCapacity() 设置缓冲区的⼤⼩
    void ensureCapacity(int capacity)
  (3)、setLength() 设置缓冲区的长度
    void setLength(int len)
  (4)、charAt()和setCharAt()
    char charAt(int where)
    void setCharAt(int where,char ch)
  (5)、getChars()
    void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)
  (6)、append() 可把任何类型数据的字符串表⽰连接到调⽤的StringBuffer对象的末尾。    例:int a=42;
      StringBuffer sb=new StringBuffer(40);
      String s=sb.append("a=").append(a).append("!").toString();
  (7)、insert() 插⼊字符串
    StringBuffer insert(int index,String str)
    StringBuffer insert(int index,char ch)
    StringBuffer insert(int index,Object obj)
    index指定将字符串插⼊到StringBuffer对象中的位置的下标。
  (8)、reverse() 颠倒StringBuffer对象中的字符
    StringBuffer reverse()
  (9)、delete()和deleteCharAt() 删除字符
    StringBuffer delete(int startIndex,int endIndex)
    StringBuffer deleteCharAt(int loc)
  (10)、replace() 替换
    StringBuffer replace(int startIndex,int endIndex,String str)
  (11)、substring() 截取⼦串
    String substring(int startIndex)
    String substring(int startIndex,int endIndex)
(12)对正反斜杠的截取
java中split的应⽤:
中的 split  函数是⽤于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回;
例如:
[java]
1. String str="1234@abc";
2. String[] a = str.split("@");
3. System.out.println("处理结果: "+a[0]+","+a[1]);  //输出的是: 处理结果: 1234,abc
对于分割的字符(串),通常是常见,普通的,没什么问题;
但是对某些特殊字符,如果字符(串)正好是正则的⼀部分,则需要转义才能使⽤,
这些字符有 | , + , * , ^ , $ , / , | , [ , ] , ( , ) , - , . , \等, 因它们是正则表达式中的⼀部分, 所以如果想⽤该字符本⾝, 这些字符需要进⾏转义才能表⽰它本⾝;
例如:
想⽤ | 竖线去分割某字符,因 | 本⾝是正则表达式中的⼀部分,所以需要 \ 去转义,因转义使⽤ \, ⽽这个 \ 正好也是正则表达式的字符,所以还得⽤⼀个 \ , 所以需要两个 \\。
[java]
1. String str="5678|XYZ";
2. String[] b = str.split("\\|");  //注意这⾥⽤两个 \\,⽽不是⼀个\
3. System.out.println("处理结果: "+b[0]+","+b[1]);  //输出的是: 处理结果: 5678,XYZ
再来看看:
[java]
1. String str="5678|XYZ";
2. String[] b = str.split("|");  //注意直接使⽤|,该字符是正则表达式的⼀部分,
3. String x="处理结果: ";
4. for(int i=0;i<b.length;i++){
5.    x=x+b[i]+",";
6. }
7. System.out.println(x);  //输出的是: 处理结果: 5,6,7,8,|,X,Y,Z,
可能我们⼈为主观感觉是⽤ | 来分割希望得到 5678 和 XYZ,因⽤特殊字符,实际结果是得到意外的结果;今天下午就这个地⽅耗了⼏个⼩时,头晕才发现问题所在,
所以指定分割的字符(串)时,最好不要包含⽤于正则表达式本⾝的字符,如上⾯的红⾊字符;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。