详细介绍JAVA中的字符串
创始人
2024-07-31 07:01:00
0

Java语言中,把字符串作为对象来处理,类String和StringBuffer都可以用来表示一个字符串。(类名都是大写字母打头)

1.字符串常量

字符串常量是用双引号括住的一串字符。 

"Hello World!"

2.String表示字符串常量

用String表示字符串:

  1. String( char chars[ ] );   
  2. String( char chars[ ], int startIndex, int numChars );   
  3. String( byte ascii[ ], int hiByte );   
  4. String( byte ascii[ ], int hiByte, int startIndex, int numChars );  

String使用示例:

  1. String s=new String() ; 生成一个空串 

下面用不同方法生成字符串"abc":

  1. char chars1[]={''a'',''b'',''c''};   
  2. char chars2[]={''a'',''b'',''c'',''d'',''e''};   
  3. String s1=new String(chars1);   
  4. String s2=new String(chars2,0,3);   
  5. byte ascii1[]={97,98,99};   
  6. byte ascii2[]={97,98,99,100,101};   
  7. String s3=new String(ascii1,0);   
  8. String s4=new String(ascii2,0,0,3);  

3.用StringBuffer表示字符串

  1. StringBuffer( ); /*分配16个字符的缓冲区*/   
  2. StringBuffer( int len ); /*分配len个字符的缓冲区*/   
  3. StringBuffer( String s ); /*除了按照s的大小分配空间外,再分配16个字符的缓冲区*/ 

4、访问字符串

(1)类String中提供了length( )、charAt( )、indexOf( )、lastIndexOf( )、getChars( )、getBytes( )、toCharArray( )等方法。

     

  1. public int length() 此方法返回字符串的字符个数     
  2. public char charAt(int index) 此方法返回字符串中index位置上的字符,其中index 值的 范围是0~length-1     
  3. public int indexOf(int ch)     
  4. public lastIndexOf(in ch)  

返回字符ch在字符串中出现的第一个和最后一个的位置

  1. public int indexOf(String str)   
  2. public int lastIndexOf(String str)  

返回子串str中第一个字符在字符串中出现的第一个和最后一个的位置

  1. public int indexOf(int ch,int fromIndex)   
  2. public lastIndexOf(in ch ,int fromIndex)  

返回字符ch在字符串中位置fromIndex以后出现的第一个和最后一个的位置

  1. public int indexOf(String str,int fromIndex)   
  2. public int lastIndexOf(String str,int fromIndex)  

返回子串str中的第一个字符在字符串中位置fromIndex后出现的第一个和最后一个的位置。

  1. public void getchars(int srcbegin,int end ,char buf[],int dstbegin)  

srcbegin 为要提取的第一个字符在源串中的位置, end为要提取的最后一个字符在源串中的位置,字符数组buf[]存放目的字符串,dstbegin 为提取的字符串在目的串中的起始位置。

  1. public void getBytes(int srcBegin, int srcEnd,byte[] dst, int dstBegin)  

参数及用法同上,只是串中的字符均用8位表示。

(2).类StringBuffer提供了 length( )、charAt( )、getChars( )、capacity()等方法。

方法capacity()用来得到字符串缓冲区的容量,它与方法length()所返回的值通常是不同的。

5、修改字符串

修改字符串的目的是为了得到新的字符串,类String和类StringBuffer都提供了相应的方法。有关各个方法的使用,参考java 2 API。

(1)String类提供的方法:

  • concat( )
  • replace( )
  • substring( )
  • toLowerCase( )
  • toUpperCase( )
  1. public String contat(String str);  

用来将当前字符串对象与给定字符串str连接起来。

  1. public String replace(char oldChar,char newChar);  

用来把串中出现的所有特定字符替换成指定字符以生成新串。

  1. public String substring(int beginIndex);   
  2. public String substring(int beginIndex,int endIndex);  

用来得到字符串中指定范围内的子串。

  1. public String toLowerCase();  

把串中所有的字符变成小写。

  1. public String toUpperCase();  

把串中所有的字符变成大写。

(2)StringBuffer类提供的方法:

  • append( )
  • insert( )
  • setCharAt( )

如果操作后的字符超出已分配的缓冲区,则系统会自动为它分配额外的空间。

  1. public synchronized StringBuffer append(String str);  

用来在已有字符串末尾添加一个字符串str。

  1. public synchronized StringBuffer insert(int offset, String str);  

用来在字符串的索引offset位置处插入字符串str。

  1. public synchronized void setCharAt(int index,char ch);  

用来设置指定索引index位置的字符值。

注意:String中对字符串的操作不是对源操作串对象本身进行的,而是对新生成的一个源操作串对象的拷贝进行的,其操作的结果不影响源串。

相反,StringBuffer中对字符串的连接操作是对源串本身进行的,操作之后源串的值发生了变化,变成连接后的串。

6、其它操作

(1)字符串的比较

String中提供的方法:equals( )和equalsIgnoreCase( )

它们与运算符''= =''实现的比较是不同的。运算符''= =''比较两个对象是否引用同一个实例,而equals( )和equalsIgnoreCase( )则比较两个字符串中对应的每个字符值是否相同。

(2)字符串的转化

java.lang.Object中提供了方法toString( )把对象转化为字符串。

(3)字符串"+"操作

运算符''+''可用来实现字符串的连接:

  1. String s = "He is "+age+" years old.";  

其他类型的数据与字符串进行"+"运算时,将自动转换成字符串。具体过程如下:

  1. String s=new StringBuffer("he is").append(age).append("years old").toString(); 

注意:除了对运算符"+"进行了重载外,java不支持其它运算符的重载。

【编辑推荐】

  1. JAVA语言关于字符串替换的思考
  2. 原来是这样:C#中字符串的内存分配与驻留池
  3. 如何使用IPTables实现字符串模式匹配
  4. JAVA编程 多维数组基础
  5. JAVA语言中关于EJB技术概论

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...