Java中String类的方法及说明

<p align="center"><span style="text-decoration: underline;"><span style="font-size: 18pt;"><a href="http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html"&gt


<p align="left">一、构造函数


<p align="left">     String(byte[ ] bytes):通过byte数组构造字符串对象


<p align="left">     String(char[ ] value):通过char数组构造字符串对象


<p align="left">     String(Sting original):构造一个original副本。即:拷贝一个original


<p align="left">     String(StringBuffer buffer):通过StringBuffer数组构造字符串对象。  


<p align="left">例如:


<p align="left">      byte[] b = {'a','b','c','d','e','f','g','h','i','j'};


<p align="left">      char[] c = {'0','1','2','3','4','5','6','7','8','9'};


<p align="left">      String sb = new String(b);                 //abcdefghij


<p align="left">      String sb_sub = new String(b,3,2);     //de


<p align="left">      String sc = new String(c);                  //0123456789


<p align="left">      String sc_sub = new String(c,2);    //34


<p align="left">      String sb_copy = new String(sb);       //abcdefghij  


<p align="left">      System.out.println("sb:"+sb);


<p align="left">      System.out.println("sb_sub:"+sb_sub);


<p align="left">      System.out.println("sc:"+sc);


<p align="left">      System.out.println("sc_sub:"+sc_sub);


<p align="left">      System.out.println("sb_copy:"+sb_copy);


<p align="left">     输出结果sb:abcdefghij


<p align="left">                      sb_sub:de


<p align="left">                       sc:0123456789


<p align="left">                        sc_sub:4


<p align="left">                        sb_copy:abcdefghij


<p align="left">二、方法:


<p align="left">     说明:①、所有方法均为public。


<p align="left">           ②、书写格式: [修饰符] <返回类型><方法名([参数列表])>


<p align="left">      例如:static int parseInt(String s)


<p align="left">      表示此方法(parseInt)为类方法(static),返回类型为(int),方法所需要为String类型。


<p align="left">1. char charAt(int index)取字符串中的某一个字符,其中的参数index指的是字符串中序数。字符串的序数从0开始到length()-1 。


<p align="left">    例如:String s = new String("abcdefghijklmnopqrstuvwxyz");


<p align="left">          System.out.println("s.charAt(5): " + s.charAt(5) );


<p align="left">          结果为: s.charAt(5): f


<p align="left">2. int compareTo(String anotherString)当前String对象与anotherString比较相等关系返回0不相等时,从两个字符串第0个字符开始比较,返回第一个不相等的字符差,另一种情况,较长字符串的前面部分恰巧是较短的字符串,返回它们的长度差。


<p align="left">3. int compareTo(Object o) :如果o是String对象,和2的功能一样;否则抛出ClassCastException异常。


<p align="left">    例如:String s1 = new String("abcdefghijklmn");


<p align="left">            String s2 = new String("abcdefghij");


<p align="left">           String s3 = new String("abcdefghijalmn");


<p align="left">           System.out.println("s1.compareTo(s2): " + s1.compareTo(s2) ); //返回长度差


<p align="left">           System.out.println("s1.compareTo(s3): " + s1.compareTo(s3) ); //返回'k'-'a'的差


<p align="left">           结果为:s1.compareTo(s2): 4


<p align="left">                       s1.compareTo(s3): 10


<p align="left">4. String concat(String str)将该String对象与str连接在一起。


<p align="left">5. boolean contentEquals(StringBuffer sb) :将该String对象与StringBuffer对象sb进行比较。


<p align="left">6. static String copyValueOf(char[] data)


<p align="left">7. static String copyValueOf(char[] data,int offset,int count) :这两个方法char数组转换成String,与其中一个构造函数类似。


<p align="left">8. boolean endsWith(String suffix)String对象是否以suffix结尾


<p align="left">    例如:String s1 = new String("abcdefghij");


<p align="left">           String s2 = new String("ghij");


<p align="left">           System.out.println("s1.endsWith(s2): " + s1.endsWith(s2) );


<p align="left">           结果为:s1.endsWith(s2): true


<p align="left">9. boolean equals(Object anObject)anObject不为空并且与当前String对象一样,返回true;否则,返回false


<p align="left">10. byte[] getBytes()将该String对象转换成byte数组


<p align="left">11. void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)该方法将字符串拷贝到字符数组中。其中,srcBegin为拷贝的起始位置、srcEnd为拷贝的结束位置、字符串数值dst为目标字符数组、dstBegin为目标字符数组的拷贝起始位置。


<p align="left">     例如:char[] s1 = {'I',' ','l','o','v','r','!'};//s1=I love her!


<p align="left">           String s2 = new String("you!"); s2.getChars(0,s1,7); //s1=I love you!


<p align="left">           System.out.println( s1 );


<p align="left">           结果为:I love you!


<p align="left">12. int hashCode()返回当前字符的哈希表码


<p align="left">13. int indexOf(int ch)只找第一个匹配字符位置


<p align="left">14. int indexOf(int ch,int fromIndex)fromIndex开始找第一个匹配字符位置


<p align="left">15. int indexOf(String str)只找第一个匹配字符串位置


<p align="left">16. int indexOf(String str,int fromIndex)fromIndex开始找第一个匹配字符串位置


<p align="left">      例如:String s = new String("write once,run anywhere!");


<p align="left">              String ss = new String("run");


<p align="left">              System.out.println("s.indexOf('r'): " + s.indexOf('r') );


<p align="left">              System.out.println("s.indexOf('r',2): " + s.indexOf('r',2) );


<p align="left">              System.out.println("s.indexOf(ss): " + s.indexOf(ss) );


<p align="left">              结果为:s.indexOf('r'): 1


<p align="left">                      s.indexOf('r',2): 12


<p align="left">                      s.indexOf(ss): 12


<p align="left">17. int lastIndexOf(int ch)


<p align="left">18. int lastIndexOf(int ch,int fromIndex)


<p align="left">19. int lastIndexOf(String str)


<p align="left">20. int lastIndexOf(String str,int fromIndex) 以上四个方法与13、14、15、16类似,不同的是:找最后一个匹配的内容


<p align="left">public class CompareToDemo {


<p align="left">      public static void main (String[] args) {


<p align="left">           String s1 = new String("acbdebfg");


<p align="left">     


<p align="left">           System.out.println(s1.lastIndexOf((int)'b',7));


<p align="left">     }


<p align="left">}


<p align="left">运行结果5


<p align="left">       (其中fromIndex的参数为 7,是从字符串acbdebfg的最后一个字符g开始往前数的位数。既是从字符c开始匹配,寻找最后一个匹配b的位置。所以结果为 5


<p align="left"> 


<p align="left"> 


<p align="left">21. int length()返回当前字符串长度


<p align="left">22. String replace(char oldChar,char newChar)将字符号串中第一个oldChar替换成newChar


<p align="left">23. boolean startsWith(String prefix)String对象是否以prefix开始


<p align="left">24. boolean startsWith(String prefix,int toffset)String对象从toffset位置算起,是否以prefix开始


<p align="left">     例如:String s = new String("write once,run anywhere!");


<p align="left">             String ss = new String("write");


<p align="left">             String sss = new String("once");


<p align="left">             System.out.println("s.startsWith(ss): " + s.startsWith(ss) );


<p align="left">             System.out.println("s.startsWith(sss,6): " + s.startsWith(sss,6) );


<p align="left">             结果为:s.startsWith(ss): true


<p align="left">                     s.startsWith(sss,6): true


<p align="left">25. String substring(int beginIndex) 取从beginIndex位置开始到结束的子字符串


<p align="left">26.String substring(int beginIndex,int endIndex)取从beginIndex位置开始到endIndex位置的子字符串


<p align="left">27. char[ ] toCharArray()将该String对象转换成char数组


<p align="left">28. String toLowerCase()将字符串转换成小写


<p align="left">29. String toUpperCase() :将字符串转换成大写。


<p align="left">     例如:String s = new String("java.lang.Class String");


<p align="left">             System.out.println("s.toUpperCase(): " + s.toUpperCase() );


<p align="left">             System.out.println("s.toLowerCase(): " + s.toLowerCase() );


<p align="left">             结果为:s.toUpperCase(): JAVA.LANG.CLASS STRING


<p align="left">                  s.toLowerCase(): java.lang.class string


<p align="left">30. static String valueOf(boolean b)


<p align="left">31. static String valueOf(char c)


<p align="left">32. static String valueOf(char[] data)


<p align="left">33. static String valueOf(char[] data,int count)


<p align="left">34. static String valueOf(double d)


<p align="left">35. static String valueOf(float f)


<p align="left">36. static String valueOf(int i)


<p align="left">37. static String valueOf(long l)


<p align="left">38. static String valueOf(Object obj)


<p align="left">     以上方法用于将各种不同类型转换成Java字符型。这些都是类方法。


<p align="left">三、 JavaString类的常用方法:


<p align="left">public char charAt(int index)


<p align="left">返回字符串中第index个字符;


<p align="left">public int length()


<p align="left">返回字符串的长度;


<p align="left">public int indexOf(String str)


<p align="left">返回字符串中第一次出现str的位置;


<p align="left">public int indexOf(String str,int fromIndex)


<p align="left">返回字符串从fromIndex开始第一次出现str的位置;


<p align="left">public boolean equalsIgnoreCase(String another)


<p align="left">比较字符串与another是否一样(忽略大小写);


<p align="left">public String replace(char oldchar,char newChar)


<p align="left">在字符串中用newChar字符替换oldChar字符


<p align="left">public boolean startsWith(String prefix)


<p align="left">判断字符串是否以prefix字符串开头;


<p align="left">public boolean endsWith(String suffix)


<p align="left">判断一个字符串是否以suffix字符串结尾;


<p align="left">public String toUpperCase()


<p align="left">返回一个字符串为该字符串的大写形式;


<p align="left">public String toLowerCase()


<p align="left">返回一个字符串为该字符串的小写形式


<p align="left">public String substring(int beginIndex)


<p align="left">返回该字符串从beginIndex开始到结尾的子字符串;


<p align="left">public String substring(int beginIndex,int endIndex)


<p align="left">返回该字符串从beginIndex开始到endsIndex结尾的子字符串


<p align="left">public String trim()


<p align="left">返回该字符串去掉开头和结尾空格后的字符串


<p align="left">public String[] split(String regex)


<p align="left">将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组


<p align="left">实例:  


<p align="left">public class SplitDemo{


<p align="left">     public static void main (String[] args) {


<p align="left"> 


<p align="left">             String date = "2008/09/10";


<p align="left">            String[ ] dateAfterSplit= new String[3];


<p align="left">            dateAfterSplit=date.split("/");         //“/”作为分隔符来分割date字符串,并把结果放入3个字符串中。


<p align="left"> 


<p align="left">            for(int i=0;i<dateAfterSplit.length;i++)


<p align="left">                       System.out.print(dateAfterSplit[i]+" ");


<p align="left">      }


<p align="left">}


<p align="left"> 


<p align="left">运行结果2008 09 10          //结果为分割后的3个字符串


<p align="left">实例:


<p align="left">TestString1.java:


<p align="left">程序代码


<p align="left">public class TestString1


<p align="left">{


<p align="left">    public static void main(String args[]) {


<p align="left">        String s1 = "Hello World" ;


<p align="left">        String s2 = "hello world" ;


<p align="left">        System.out.println(s1.charAt(1)) ;


<p align="left">        System.out.println(s2.length()) ;


<p align="left">        System.out.println(s1.indexOf("World")) ;


<p align="left">        System.out.println(s2.indexOf("World")) ;


<p align="left">        System.out.println(s1.equals(s2)) ;


<p align="left">        System.out.println(s1.equalsIgnoreCase(s2)) ;


<p align="left">        String s = "我是J2EE程序员" ;


<p align="left">        String sr = s.replace('我','你') ;


<p align="left">        System.out.println(sr) ;


<p align="left">    }


<p align="left">}


<p align="left">TestString2.java:


<p align="left">程序代码


<p align="left">public class TestString2


<p align="left">{


<p align="left">    public static void main(String args[]) {


<p align="left">        String s = "Welcome to Java World!" ;


<p align="left">        String s2 = "   magci   " ;


<p align="left">        System.out.println(s.startsWith("Welcome")) ;


<p align="left">        System.out.println(s.endsWith("World")) ;


<p align="left">        String sL = s.toLowerCase() ;


<p align="left">        String sU = s.toUpperCase() ;


<p align="left">        System.out.println(sL) ;


<p align="left">        System.out.println(sU) ;


<p align="left">        String subS = s.substring(11) ;


<p align="left">        System.out.println(subS) ;


<p align="left">        String s1NoSp = s2.trim() ;


<p align="left">        System.out.println(s1NoSp) ;


<p align="left">    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 目录 连接 连接池产生原因 连接池实现原理 小结 TEMPERANCE:Eat not to dullness;drink not to elevation.节制
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 一个优秀的工程师和一个普通的工程师的区别,不是满天飞的架构图,他的功底体现在所写的每一行代码上。-- 毕玄 1. 命名风格 【书摘】类名用 UpperCamelC
今天犯了个错:“接口变动,伤筋动骨,除非你确定只有你一个人在用”。哪怕只是throw了一个新的Exception。哈哈,这是我犯的错误。一、接口和抽象类类,即一个对象。先抽象类,就是抽象出类的基础部分,即抽象基类(抽象类)。官方定义让人费解,但是记忆方法是也不错的 —包含抽象方法的类叫做抽象类。接口
Writer :BYSocket(泥沙砖瓦浆木匠)微 博:BYSocket豆 瓣:BYSocketFaceBook:BYSocketTwitter :BYSocket一、引子文件,作为常见的数据源。关于操作文件的字节流就是 —FileInputStream&amp;FileOutputStream。
作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节。交流QQ群:【编程之美 365234583】http://qm.qq.com/cgi-bin/qm/qr?k=FhFAoaWwjP29_Aonqz
本文目录 线程与多线程 线程的运行与创建 线程的状态 1 线程与多线程 线程是什么? 线程(Thread)是一个对象(Object)。用来干什么?Java 线程(也称 JVM 线程)是 Java 进程内允许多个同时进行的任务。该进程内并发的任务成为线程(Thread),一个进程里至少一个线程。 Ja
Writer :BYSocket(泥沙砖瓦浆木匠)微 博:BYSocket豆 瓣:BYSocketFaceBook:BYSocketTwitter :BYSocket在面向对象编程中,编程人员应该在意“资源”。比如?1String hello = &quot;hello&quot;; 在代码中,我们
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 这是泥瓦匠的第103篇原创 《程序兵法:Java String 源码的排序算法(一)》 文章工程:* JDK 1.8* 工程名:algorithm-core-le
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 目录 一、父子类变量名相同会咋样? 有个小故事,今天群里面有个人问下面如图输出什么? 我回答:60。但这是错的,答案结果是 40 。我知错能改,然后说了下父子类变
作者:泥瓦匠 出处:https://www.bysocket.com/2021-10-26/mac-create-files-from-the-root-directory.html Mac 操作系统挺适合开发者进行写代码,最近碰到了一个问题,问题是如何在 macOS 根目录创建文件夹。不同的 ma
作者:李强强上一篇,泥瓦匠基础地讲了下Java I/O : Bit Operation 位运算。这一讲,泥瓦匠带你走进Java中的进制详解。一、引子在Java世界里,99%的工作都是处理这高层。那么二进制,字节码这些会在哪里用到呢?自问自答:在跨平台的时候,就凸显神功了。比如说文件读写,数据通信,还
1 线程中断 1.1 什么是线程中断? 线程中断是线程的标志位属性。而不是真正终止线程,和线程的状态无关。线程中断过程表示一个运行中的线程,通过其他线程调用了该线程的 方法,使得该线程中断标志位属性改变。 深入思考下,线程中断不是去中断了线程,恰恰是用来通知该线程应该被中断了。具体是一个标志位属性,
Writer:BYSocket(泥沙砖瓦浆木匠)微博:BYSocket豆瓣:BYSocketReprint it anywhere u want需求 项目在设计表的时候,要处理并发多的一些数据,类似订单号不能重复,要保持唯一。原本以为来个时间戳,精确到毫秒应该不错了。后来觉得是错了,测试环境下很多一
纯技术交流群 每日推荐 - 技术干货推送 跟着泥瓦匠,一起问答交流 扫一扫,我邀请你入群 纯技术交流群 每日推荐 - 技术干货推送 跟着泥瓦匠,一起问答交流 扫一扫,我邀请你入群 加微信:bysocket01
Writer:BYSocket(泥沙砖瓦浆木匠)微博:BYSocket豆瓣:BYSocketReprint it anywhere u want.文章Points:1、介绍RESTful架构风格2、Spring配置CXF3、三层初设计,实现WebService接口层4、撰写HTTPClient 客户
Writer :BYSocket(泥沙砖瓦浆木匠)什么是回调?今天傻傻地截了张图问了下,然后被陈大牛回答道“就一个回调…”。此时千万个草泥马飞奔而过(逃哈哈,看着源码,享受着这种回调在代码上的作用,真是美哉。不妨总结总结。一、什么是回调回调,回调。要先有调用,才有调用者和被调用者之间的回调。所以在百
Writer :BYSocket(泥沙砖瓦浆木匠)一、什么大小端?大小端在计算机业界,Endian表示数据在存储器中的存放顺序。百度百科如下叙述之:大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加
What is a programming language? Before introducing compilation and decompilation, let&#39;s briefly introduce the Programming Language. Programming la
Writer :BYSocket(泥沙砖瓦浆木匠)微 博:BYSocket豆 瓣:BYSocketFaceBook:BYSocketTwitter :BYSocket泥瓦匠喜欢Java,文章总是扯扯Java。 I/O 基础,就是二进制,也就是Bit。一、Bit与二进制什么是Bit(位)呢?位是CPU
Writer:BYSocket(泥沙砖瓦浆木匠)微博:BYSocket豆瓣:BYSocket一、前言 泥瓦匠最近被项目搞的天昏地暗。发现有些要给自己一些目标,关于技术的目标:专注很重要。专注Java 基础 + H5(学习) 其他操作系统,算法,数据结构当成课外书博览。有时候,就是那样你越是专注方面越