您的位置:首页 > 编程语言 > Java开发

Java 基础之String的基本方法(1)

2014-09-26 18:44 357 查看
Java 基础之String的基本方法(1)


Java中提供了String类针对字符串的处理,另外为了使String在实际应用中更加方便提供了StringBuffer,StringBuilder来解决String在实际运用中的缺点。String等这三个类在java.long包中是Final类型的。也就是说该类不能被继承,并且实现了java.io.Serializable,Comparable<String>,CharSequence接口。同时String类型提供了比较丰富的方法进行字符串处理操作。

String类是不可变类,,一旦一个String对象被创建之后,包含在这个字符串序列是不可变的,直到这个对象被销毁。

String类是类类型,属于复合数据类型。

本篇主要目的就是回顾一下String的常用方法。

一.String的构造方法

1.1 构造函数说明

String 类提供了大量的构造器来创建String对象,下面有几个有特殊用处。

String: 创建一个包含0个字符串序列的String对象(不是返回NULL);

String(byte []bytes,Charset charset):使用指定的字符集将从指定byte数组解码成一个新的String对象。

String(byte []bytes,int offset,int length):使用平台的默认字符集将从指定的byte[]数组的offset开始,长度为length的子数组进行解码成一个新的String对象。

String(byte []bytes,int offset,int length .,String charsetName):使用指定的字符集将从指定的byte[]数组的offset开始,长度为length的子数组解码成一个新的String对象。

String(byte[] bytes,String charsetName) : 使用指定的字符集将指定的bytes[]数组解码成一个新的String对象。

String(char []values):将指定的字符数组连成字符串

String(char[]values, int offset ,int count):将指定的字符数组从offset开始,长度为count的字符元素连成字符串。

String(Stringoriginal):根据字符串直接量来创建一个String对象,也就是说新创建的String对象是该参数字符串。

String(StringBufferbuffer):根据StringBuffer 对象来创建对应的String对象。

String(StringBuilderbuilder):根据StringBuilder对象来创建对应的String对象。



以上就是String提供的默认构造函数,相互之间是重载关系。各有不同的应用场景。

其中参数有byte和char的相当于数据类型转换,带有StringBuffer,StringBuilder的参数,相当于包装转换。



1.2 String对象的创建

实例代码一:

实例代码一:
package cn.com.basicSix;
/**
 * 
 * @author fcs
 * 2014年9月24日
 * StringDemo
 * 说明:字符串创建的多种方式
 */
public class StringDemo {
   public static void main(String[] args) {
	   /*声明一个字符串对象,并分配内存空间,将该字符串存入*/
	  String str1 = "it's  String ."; 
	   
	   /*声明一个字符串,并分配了内存,因为使用了new关键字,
	    * 注意此时没有赋值,内存中存储的是一个空串*/
	  String str2 = new String();
	  
	    /*声明一个字符串,并分配内存空间,同时克隆字符串常量 it's  String .
	     *  到分配的内存空间,这种方式使用的是默认构造函数,这条语句产生了两个对象,一个字符串
	     *  */
	   String str3 = new String("it's  String .");
	   
	   char chars [] = new char [] {'c','h','a','r'};
	   /*声明一个字符串,并分配内存空间,使用字符数组初始化字符串,填充到内存中,
	    * 简单的说就是 :
	    * 将指定的字符数组连成字符串*/
	  String str4 = new String (chars);
	  
	  /*同上,不过是将字符数组的长度变为2,起始位置是0*/
	  String str5 = new String (chars ,0,2);
	  System.out.println("str4 = "+str4 + "  str5 = "+str5);
	  
      /*将StringBuffer包装成String*/
      StringBuffer strbuff = new StringBuffer("it's StringBuffer .");
      String str6 = new String(strbuff); 
 
   }
}


二.字符串常用方法

除了多样化的构造方法外,String还有很多方法,提供一种工具类的效果。



2.1常用方法1

序号

方法名

参数

方法说明

源码说明

1

Length()

S表示目标字符串对象

返回字符串的长度

String类中有一个Final类型的char型数组,返回的既是该数组的元素个数

2

Equals(String s)

如果当前字符串与目标字符串s完全相同,返回true,否则返回false

该方法有两个判断情况,一是目标字符串是Object类型相等的条件是指向的内存地址相同,二是目标字符串是String类型,并且内容相等。

3

equalsIgnoreCase(String s)

在忽略字符串大小写的情况下,进行比较,结果同上

4

startWith(String s)

判断当前字符串是否由目标字符串S 开头,如果是返回true,否则返回false

实质比较的是char类型的数组元素

5

endsWith(String s)

判断当前字符串是否由目标字符串S结尾,是,返回true,否则返回false

实质比较的是char类型的数组元素

6

compareTo(String s)

当前字符串与目标字符串按字典序比较,相等:返回0,大于返回正数,小于返回负数。

以长度为准,小于和大于的正负差值根据字符数组的元素值ASCII码之差为准

7

compareToIgnoreCase(String s)

忽略大小写的compareTo 方法

实例代码2:

package cn.com.basicSix;
/**
 * @author fcs
 * 2014年9月24日
 * 说明:String基本方法演示
 */
public class StringDemo2 {
   public static void main(String[] args) {
	 String str1 = "asdnfalnfl";
	 /*获取长度*/
	 int length = str1.length();
	 
	 /*是否相等*/
	 boolean eq = str1.equals("asdnfalnfl");

	 /*是否以as开头*/
	 boolean st = str1.startsWith("as");
	 
	 /*从起始位置为2开始,是否以dn开头,与上面的方法重载*/
	 boolean st1 = str1.startsWith("dn", 2);
	 System.out.println("st : "+st+" st1 = "+st1);
	 
	 /*是否以fl结尾*/
	 boolean ed = str1.endsWith("fl");
    
	 /*将str1与e的ASCII码值比较,将差值返回,这里比较的是第一个字母*/
	 int sub = str1.compareTo("e");
	 System.out.println("sub = "+sub);
   
   }
}


2.2常用方法2

序号

方法名

参数

方法说明

源码说明

8

indexOf(String s)

s表示目标字符串对象



start表示检索起始位置



end表示结束位置

从当前字符串起,检索目标字符串目标字符串第一次出现的位置(从0开始),没有检索到返回-1

该方法有多个重载形式,通过相互调用获取检索结果

9

lastIndexOf(String s)

从当前字符串起,检索目标字符串最后一次出现的位置,(从0开始),没有检索到返回-1

同上

10

indexOf(String s ,int start)

从当前start位置处检索目标字符串第一次出现的位置,没有检索到返回-1

同上

11

lastIndexOf(String s ,int end)

从当前字符串起,到end结束之前,检索目标字符串最后一次出现的位置,没有检索到返回-1

同上

12

subString(int Start)

从start位置开始到最后截取字符串

该方法预先检查是否异常,然后通过构造函数返回新的String对象

13

subString(int start ,int end)

截取start--->end范围的字符串

同上

实例代码3:

package cn.com.basicSix;
/**
 * 
 * @author fcs
 * 2014年9月24日
 * 说明:字符串的基本操作
 */
public class StringDemo3 {
   public static void main(String[] args) {
	  String str = "alandflanoelaknelwolandlw";
	  
	  /*获取该字符串第一次出现的位置*/
	  int num1 = str.indexOf("lw");
	  System.out.println("num1 = "+num1);
      
	  /*获取该字符串最后一次出现的位置*/
	  int num2 = str.lastIndexOf("lw");
      System.out.println("num2 = "+num2);
    
      /*从第六个位置检索该字符串第一次出现的位置*/
      int num3 = str.indexOf("la", 6);
      System.out.println("num3 = "+num3);

      /*从头到20之间获取该字符串最后一次出现的位置*/
      int num4 = str.lastIndexOf("la",20);      
   
      /*字符串截取*/
      String str2 = str.substring(20);
      
      String str3 = str.substring(10, 20);
      System.out.println("str2 = "+str2+ "  str3 = "+str3);
     
   }
}


2.3常用方法3

序号

方法名称

参数说明

方法说明

源码说明

14

replaceAll(String old,String new)

old表示原子串,new替换新子串,start表示起始位置,other另一个字符串,otherStart表示另一个字符串的起始位置,length表示截取字符串长度。sign表示分隔符

返回将old替换为new的字符串

该方法是Pattern工具类进行匹配,使用该类中的方法实现

15

regionMatches(int start ,int otherStart,int length)

当前字符串与other字符串的子串比较是否相等。从当前字符串start开始,长度为length,与other字符串从otherStart开始,该方法是boolean类型

16

Trim()

去除字符串起始位置和结束位置的空格

使用subString进行截取

17

regionMathces(boolean bCase,int start ,String other )

与15是重载函数,bCase是设置是否忽略大小写,为false时精确比较

18

Split(String sign)

返回一个字符串数组,根据sign对字符串进行分割

使用正则表达式和pattern进行拆分

实例代码4:

package cn.com.basicSix;
/**
 * @author fcs
 * 2014年9月24日
 * 说明:String的常用方法
 */
public class StringDemo4 {
  public static void main(String[] args) {
	   String str = "adslnfalnefl4hlnag";
	   
	   /*如果第一个参数不是str内容的话,该方法会失效*/
       String str1 = str.replaceAll("adslnfalnefl4hlnag", "agweworilnlansdlfne");
       System.out.println("str1 = "+str1);
       
       /*str从1开始数四个,123gwew898从3开始数四个,字符串比较*/
      boolean re = str1.regionMatches(1, "123gwew898", 3, 4);  
      System.out.println("re = "+re);
  
      /*以f为标准进行分割*/
      String  str3 = "asdnfalsdnflansdflnwlndflwnelnwlrn";
      String  strArray [] = str3.split("f");
      for(int i = 0 ;i < strArray.length;i++){
    	  System.out.print(strArray[i]+" , ");
      }
      System.out.println("\n");
  
      String str4 = "    skdfla naldf ";
      String strTrim = str4.trim();
      System.out.println("strTrim="+strTrim);
  }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐