你好,游客 登录 注册 搜索
背景:
阅读新闻

Java之String类的使用细节

[日期:2015-01-11] 来源:Linux社区  作者:凌风 [字体: ]
String类的特点:
    字符串对象一旦被初始化就不会被改变,字符串存储在字符串常量池中(字符串缓冲区)。如果池中没有就创建,如果有就直接拿过来用。
 代码验证如下:
 
  String s = "abc";//在常量池中创建了一个字符串对象
  String s1 = "abc";//true
//s与s1内容相同,地址相同
  System.out.println(s==s1);//true
  System.out.println(s==s1);//true
 
String s2 = new String("abc");//在堆内存中创建了两个对象,一个new对象一个字符串对象
//s与s2内同相同,地址不同
  System.out.println(s==s2);//false
  System.out.println(s==s2);//true  原因是String类中的equals复写了String类中的equals建立了String类属于自己的判断字符串对象是否相同的依据,其实就是比较字符串的内容。
 
String s = new String();//等效于String s= "" 都是空字符串,内容相同,但是不等效于String s = null; 
 
 
按照面向对象的思想对字符串功能进行分类
            思考思路:如果我们想要使用某种方法或说是功能来达到自己的目的,那么就首先需要对这种方法进行查找,看这种方法是否已经给我们封装好了,例如:如果想要获取字符串的长度,那么返回值必然是int,确定了返回值再想要找到方法就会很简单了。那么再思考的就是我们是否要给这个方法进行参数的传递,获取长度其实就是对象直接调用方法就可以了,因此我们也可以确定,这个方法是不需要来进行参数传递的。经过以上方式的思考,我们很快就可以确定下来这个方法是哪个。如果这样的思考之后,还没有找到我们需要的方法,那么有可能就需要我们自己进行封装了。
 
以下为String类常用的一些方法,也是通过面向对象的思想来进行整理的。
如字符串"string"
1,获取
    1.1获取字符串中字符的个数(长度)。
            返回值int  方法名:length();
    1.2根据位置获取字符。
            返回值char   方法名: charAt(int index);
    1.3根据字符获取在字符串中第一次出现的位置。
            返回值int     方法名:indexOf(int ch);
            返回值int     方法名:indexOf(int ch,int fromIndex);
            返回值int     方法名:indexOf(String str);
            返回值int     方法名:indexOf(String str,int fromIndex);
      1.4根据字符串获取在字符串中第一次出现的位置。
            返回值int     方法名:lastIndexOf(int ch);
            返回值int     方法名:lastIndexOf(int ch,int fromIndex);
            返回值int     方法名:lastIndexOf(String str);
            返回值int     方法名:lastIndexOf(String str,int fromIndex);
      1.5根据字符串获取字符串中的一部分字符串,即子串。
            返回值String 方法名:subString(int beginIndex, int endIndex);      
            返回值String 方法名:subString(int beginIndex);      
 
2,转换
        2.1将字符串变成字符串数组(字符串的切割)
            返回值String[] 方法名 split(String regex);//添加正则表达式的切割规则
        2.2将字符串变成字符数组。
            返回值char[]  方法名 toCharArray();
        2.3将字符串变成字节数组
            返回值byte[]  方法名getBytes();
        2.4将字符串中字母转为大小写字母
            返回值String  方法名toUpperCase();
            返回值String  方法名toLowerCase();
        2.5将字符串中的内容进行替换
            返回值String  方法名replace(char oldChar,char newChar);//没有oldChar则不改变
            返回值String  方法名replace(CharSequence target,CharSequence replacement);
            也可以理解为
            返回值String  方法名replace(String oldString,String newString);因为String类是Sequence的子类
        2.6去除字符串中两端的空格
            返回值String  方法名trim();
        2.7将字符串进行连接
            返回值String  方法名concat(String s);
        2.8将基本数据类型转换为字符串类型
            返回值String  方法名ValueOf(基本数据类型);
        2.9将字符数组转化为字符串
            可以使用构造方法String(char [] value);
            返回值String  方法名copyValueOf(char[] data)
3,判断
    3.1两个字符串内容是否相同
            返回值boolean  方法名 equals(Object obj);
            返回值boolean  方法名equalsIgnoreCase(String str); //忽略大小写比较字符串内容是否相同。
    3.2字符串中是否包含指定字符串
            返回值boolean  方法名contains(String str);
    3.3字符串是否以指定字符串开头,是否以指定字符串结尾
            返回值boolean  方法名startsWith(String str);
            返回值boolean  方法名endsWith(String str);
4,比较
    4.1比较两个字符串的大小
            返回值int  方法名compareTo(String str);
 

通过Java程序抽取日志中的sql语句  http://www.linuxidc.com/Linux/2015-01/111347.htm

解密Java增强的泛型 http://www.linuxidc.com/Linux/2015-01/111360.htm

Java中介者设计模式 http://www.linuxidc.com/Linux/2014-07/104319.htm

Java 设计模式之模板方法开发中应用 http://www.linuxidc.com/Linux/2014-07/104318.htm

设计模式之 Java 中的单例模式(Singleton) http://www.linuxidc.com/Linux/2014-06/103542.htm

Java对象序列化 http://www.linuxidc.com/Linux/2014-10/107584.htm

大话设计模式(带目录完整版) PDF+源代码 http://www.linuxidc.com/Linux/2014-08/105152.htm

Java中的函数传递 http://www.linuxidc.com/Linux/2014-11/109056.htm

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-01/111595.htm

linux
相关资讯       Java String 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款