正在加载……
下面是分别用split函数和StringTokenizer类来实现字符串分割的简单代码:

●利用split函数:
  1. String s = new String("2_8_7_4_3_9_1");
  2. String[] arr = s.split("_");

●利用StringTokenizer类:

  1. String s = new String("2_8_7_4_3_9_1");
  2. StringTokenizer commaToker = new StringTokenizer(s, "_");
  3. String[] arr = new String[commaToker.countTokens()];
JAVA字符串处理函数列表一览
Posted in JAVA on March 24, 2008 / 评论(0) »

Java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。下面是一些使用频率比较高的函数及其相关说明。

 

substring()
它有两种形式,第一种是:String substring(int startIndex)
第二种是:String substring(int startIndex,int endIndex)

concat() 连接两个字符串

replace() 替换
它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:
String replace(char original,char replacement)
例如:String s=”Hello”.replace(’l',’w');
第二种形式是用一个字符序列替换另一个字符序列,形式如下:
String replace(CharSequence original,CharSequence replacement)

trim() 去掉起始和结尾的空格

valueOf() 转换为字符串

toLowerCase() 转换为小写

toUpperCase() 转换为大写

length() 取得字符串的长度
例:
char chars[]={’a',’b’.’c'};
String s=new String(chars);
int len=s.length();

charAt() 截取一个字符
例:
char ch;
ch=”abc”.charAt(1);
返回值为’b’

getChars() 截取多个字符
void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)
sourceStart 指定了子串开始字符的下标
sourceEnd 指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到sourceEnd-1的字符。
target 指定接收字符的数组
targetStart target中开始复制子串的下标值
例:
String s=”this is a demo of the getChars method.”;
char buf[]=new char[20];
s.getChars(10,14,buf,0);

getBytes()
替代getChars()的一种方法是将字符存储在字节数组中,该方法即getBytes()
例:
String s = “Hello!你好!”;
byte[] bytes = s.getBytes();

toCharArray()
例:
String s = “Hello!你好!”;
char[] ss = s.toCharArray();

equals()和equalsIgnoreCase() 比较两个字符串

regionMatches() 用于比较一个字符串中特定区域与另一特定区域,它有一个重载的形式允许在比较中忽略大小写。
boolean regionMatches(int startIndex,String str2,int
str2StartIndex,int numChars)
boolean regionMatches(boolean ignoreCase,int startIndex,String
str2,int str2StartIndex,int numChars)

startsWith()和endsWith()
startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束

equals()和==
equals()方法比较字符串对象中的字符,==运算符比较两个对象是否引用同一实例。
例:String s1=”Hello”;
String s2=new String(s1);
s1.eauals(s2); //true
s1==s2;//false

compareTo()和compareToIgnoreCase() 比较字符串

indexOf()和lastIndexOf()
indexOf() 查找字符或者子串第一次出现的地方。
lastIndexOf() 查找字符或者子串是后一次出现的地方。

StringBuffer构造函数
StringBuffer定义了三个构造函数:
StringBuffer()
StringBuffer(int size)
StringBuffer(String str)
StringBuffer(CharSequence chars)

下面是StringBuffer相关的函数:
length()和capacity()
一个StringBuffer当前长度可通过length()方法得到,而整个可分配空间通过capacity()方法得到。

ensureCapacity() 设置缓冲区的大小
void ensureCapacity(int capacity)

setLength() 设置缓冲区的长度
void setLength(int len)

charAt()和setCharAt()
char charAt(int where)
void setCharAt(int where,char ch)

getChars()
void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)

append() 可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾。
例:int a=42;
StringBuffer sb=new StringBuffer(40);
String s=sb.append(”a=”).append(a).append(”!”).toString();

insert() 插入字符串
StringBuffer insert(int index,String str)
StringBuffer insert(int index,char ch)
StringBuffer insert(int index,Object obj)
index指定将字符串插入到StringBuffer对象中的位置的下标。

reverse() 颠倒StringBuffer对象中的字符
StringBuffer reverse()

delete()和deleteCharAt() 删除字符
StringBuffer delete(int startIndex,int endIndex)
StringBuffer deleteCharAt(int loc)

replace() 替换
StringBuffer replace(int startIndex,int endIndex,String str)

substring() 截取子串
String substring(int startIndex)
String substring(int startIndex,int endIndex)

Java字符串处理
Posted in JAVA on March 24, 2008 / 评论(0) »

第一节、String对象                    

一、

       Java中将字符串作为String类型对象来处理。当创建一个String对象时,被创建的字符串是不能被改变的。每次需要改变字符串时都要创建一个新的String对象来保存新的内容。原始的字符串不变。之所以采用这种方法是因为实现固定的,不可变的字符串比实现可变的字符串更高效。对于那些想得到改变的字符串的情况,有一个叫做StringBufferString类的友类,它的对象包含了在创建之后可以改变的字符串。

       String类和StringBuffer类都在java.lang中定义。因此它们可以自动的被所有程序使用。两者均被说明为final,这意味着两者均不含子类。

 

二、String构造函数

       1String() 默认构造函数,无参数

       String  s1 = new  String();      

       2String( char chars[]) ,传入字符数组

              char[] myChars={'a', 'b', 'c'};

              String  s2 = new String(myChars)  // 使用字符串“abc”初始化s2

       3String( char chars[], int startIndex, int numChars) ,传入一个字符数组,从指定下标位置开始获取指定个数的字符,用这些字符来初始化字符串变量。

              char[] myChars={'h', 'e', 'l', 'l', 'o'};

              String s3 = new String(myChars,1,3);  //使用字符串“ell”初始化s3

       4String(String strObj),传入另一个字符串对象,用该字符串对象的内容初始化

              String s4= new String(s3);  // 这是s4也是“ell”了。

       5String(byte asciiChars[])

               String(byte asciiChars[], int startIndex, int numChars)

              尽管Javachar类型使用16位(bit)表示Unicode编码字符集,在Internet中,

字符串的典型格式使用由ASCII字符集构成的8位数组,因为8ASCII字符串是共同的,当给定一个字节(byte)数组时,String类提供了上面两个初始化字符串的构造函数。

例子:

package Examples;

class SubStringConv{

       public static void main(String[] args){

              byte ascii[]={65,66,67,68,69,70};

              String s1=new String(ascii);

              System.out.println(s1);

              String s2=new String(ascii,2,3);

              System.out.println(s2);

       }

}

编译和运行后输出:

ABCDEF

CDE

 

三、

       1)调用字符串的length()方法可以得到该字符串的长度(字符个数);

      

       2)前面说明了如何使用new运算符创建一个字符串实例。然而这是一种早期的使用字符串常量的处理方法。对于程序中的每一个字符串常量,Java会自动创建String对象。因此,可以使用字符串常量初始化String对象。例如:

       String s5="abc";

       int  i = "abc".length(); //可以将字符串作为对象来进行操作

       3)可以使用“+”运算符来将两个字符串连接起来产生一个新的String对象。只要+运算符有一个运算数是字符串(String)实例时,编译器就将另一个运算数转换为它的字符串形式。这种操作是通过调用一个由String类定义的 字符串转换方法valueOf()来完成的。对于简单类型,valueOf()方法返回一个字符串,该字符串包含了该类型的值的字符串。对于对象,valueOf()方法调用toString()方法。每一个类都执行toString()方法,因为它是由Object定义的。toString()方法具有如下一般形式: String toString()   toString()方法返回一个String对象(即字符串)。该对象一般是对类的一个描述。

 

四、一些字符串操作

       1)字符截取

              *char  charAt(int  where) ,注意,这里返回一个char字符例如:

              char a ;

              a="abcde".charAt(2);  //将索引为2 ,即第三个字符赋给a

 

              * void getChars(int sourceStart, int sourceEnd, char target[], int targetStart) ,这里是无返回值方法,指定要截取的子字符串的开始和结束下标,再指定要储存子字符串内字符的数组,和存放这些字符的起始位置。注意,子字符串并不包括位于结束下标的字符。

          

           * byte[] getBytes()    这是getBytes()方法最简单的形式,它实现将字符存放于字节数组中。在将字符串(String)值输出到一个不支持16Unicode编码的环境时,getBytes

()是最有用的。例如,大多数Internet协议和文本文件格式在文本交换时使用8ASCII编码。

 

 * char[]  toCharArray()  将字符串中所有的字符转换到一个字符数组的最简当方法,也可以使用getChars()方法实现。

 

2)字符串比较

    * boolean equals(Object str)  比较两个字符串对象是否相等,

   boolean equalsIgnoreCaseJ(String str)  比较两个字符串对象,且忽略字符的大小写

 

  * regionMatches() 方法允许将一个字符串中指定的区间和另一字符串中指定的区间进行比较,它的重载形式允许在比较时忽略大小写。下面给出这两种方法的一般形式:

   boolean  regionMatches(int startIndex,String str2,int str2StartIndex,int numChars)

boolean  regionMatches(boolean ignoreCase ,int startIndex,String str2,int str2StartIndex,int numChars)

     其中startIndex指定调用此方法的字符串内子字符串的起始位置。

*  boolean startsWith(String str)    startsWith方法还有第二种形式:

 boolean startWith(String str, int startIndex)

   boolean endsWith(String str)

     上面的方法用来判断一个给定的字符串是否是从指定的字符串开始或结束。

* int compareTo(String str) 方法用于比较两个字符串的大小。字符串比较的结果及其含义:

含义

小于0

调用此方法的字符串小于参数str

大于0

调用此方法的字符串大于参数str

等于0

两个字符串相等

 

3)其他操作

* 搜索字符串:

int  indexOf( int ch)

int  lastIndexOf( int ch)

int  indexOf(String str)

int  lastIndexOf(String str)

指定搜索的起始点:

int  indexOf( int ch, int startIndex)

int  lastIndexOf( int ch ,int startIndex)

int  indexOf(String str ,int startIndex)

int  lastIndexOf(String str, int startIndex)

 

* 使用 substring()截取子字符串:

       String  substring(int startIndex)    注意substringstring没有大写,截取指定位置后的子字符串。

       String  substring(int startIndex,int endIndex) 截取指定起始位置和结束位置的子字符串。注意截取的字字符串不包括结束位置的字符。

 

* concat() 连接连个字符串,与+ 运算符执行相同功能。

       String concat(String str)

 

              * replace() 用另一个字符取代指定字符串中指定字符:

String replace(char original, char replacement)    例如:

       String s=”Hello”.replace(‘l’,’w’);  //执行后 s =”Hewwo”;

 

             * trim() 返回一个字符串,该字符串是删除调用字符串前后的空白符所得的字符串

      

              * 改变字符串内字符的大小写

               String  toLowerCase() 返回一个所有字母都是小写的字符串

               String  toUpperCase()返回一个所有字母都是大写的字符串

 

 

       * 使用 valueOf()方法实现数据转换

              例如:

String str = String.valueOf(3) ;  //int类型转换成字符串类型,其他基本数据类型和任何类的对象也可作为参数。

 

第二节、StringBuffer

StringBuffer定义了下面三个构造函数:

       StringBuffer()                 // 默认构造函数,预留了16个字符的空间,该空间不需再分配

       StringBuffer(int size)   // 设置指定缓冲区大小

StringBuffer(String str) // 设置StringBuffer对象初始化的内容并预留16个字符空间,且不需再分配空间

* int length()

       调用length()方法可以得到StringBuffer对象的长度,调用capacity()可以得到总的分配容量。两个方法都是返回一个int类型的值。

       * void ensureCapacity(int capacity)

如果想在构造StringBuffer对象后为某些字符预分配空间,可以使用ensureCapacity()方法,设置缓冲区的大小,这在事先已知要在StringBuffer上追加大量小字符串的情况下是有用的。ensureCapcity()方法具有如下的一般形式:  void  ensureCapacity(int capacity)

* void setLength(int len)

使用setLength()方法可以设置StringBuffer对象的长度,它的一般形式如下:

void  setLength(int len)    如果len大于StringBuffer对象当前的length()值的话,那么会在StringBuffer对象后面加上空字符;如果比length()小的话,则len后面的字符串会丢失。

       * char charAt(int where)

         void setCharAt(int where, char ch)

   使用charAt()方法可以得到StringBuffer对象中指定位置上的字符,setCharAt()       可以设置指定位置上的字符。它们的一般形式如下:

       char charAt(int where)

       void setCharAt(int where,char ch)       

对于这两种法法,where值必须是非负的,同时不能超过或等于StringBuffer对象的长度。

* getChars(int suorceStart,int sourceEnd,char target[] , int targetStart)

* append()

 Append()方法将任一其他类型数据的字符串形式连接到调用StringBuffer对象的后面,对所有内置的类型和Object,它都有重载形式。下面是几种形式:

StringBuffer append(String str)

StringBuffer append(int num)

StringBuffer append(Object obj)

 

* insert()

 Insert()方法将一个字符串插入另一个字符串中。下面是它的几种形式:

 StringBuffer insert(int index,String str)

 StringBuffer insert(int index,char ch)

 StringBuffer insert(int index,Object obj)

 

       *reverse()             // StringBuffer reverse()

        StringBuffer strbf=new StringBuffer(“ABCDEFG”);

        strbf.reverse(); 

        System.out.println(strbf); //输出 GFEDCBA

      

   * StringBuffer delete(int startIndex,int endIndex)

        StringBuffer deleteCharAt(int loc)

       删除指定位置的字符串和指定位置的字符。例如删除第一个字符后的所有字符:

        strbf.delete(1,strbf.length());

 

       * replace()   

        它完成在StringBuffer内部用一个字符串代替另一个指定起始位置和结束位置的字符串的功能,注意的是,被代替的字符不包括结束位置上的字符,它的一般形式是,:

        StringBuffer replace(int startIndex, int endIndex,String str)

 

      * substring()  返回StringBuffer的一部分值

         String substring(int startIndex)

         String substring(int startIndex, int endIndex)

被扣利息100多块
Posted in 情感天地 on March 24, 2008 / 评论(0) »

一直以为招行的最低还款就是不用利息的,原来是要哦。只是不影响信用!
超级汗,扣了一百多块利息

分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]