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

Java String对象的介绍和一些常用的方法

2018-03-21 17:50 856 查看

1. String是什么?

 很多萌新(我也是个菜鸡)会问String是八大数据类型中的类型吗?当然不是了,String的话它是一个引用类型的对象,对象大家应该都知道,可以new出来的 我们写String也是可以new出来的,像下面这样
public class StringTest(){
    public static void main(String[] args){
        String str = new String("a");
        System.out.println(str);
    }
} 那么这边的输出结果就是 a 通过上面的代码大家应该就可以理解String它并不是java的数据类型,它是个对象,其实很多时候我们会用到new String();来做事情,这边我就举个例子,因为我比较喜欢这样写public class StringTest(){
    public static String testaa(){
        /**
         * 首先我们有个String类型的变量 a
         * 然后我们需要在aaa后面追加一个bbb
         */
        String a = "aaa";
        /**
         * 这边我们用StringBuffer
         * 当然了有的同学可能会说我可以a + "bbb"呀,为什么还要用StringBuffer呢?
         * 首先这只是个例子,其次当你需要读取一个大文件的时候,String是存不了的,只能用StringBuffer来进行追加
         * 所以大家看好StringBuffer转换为String就好了,不要纠结太多!以前我学Spring的时候就是,老师举一个很简单的例子
         * 我想有很多方法都可以这样干,为什么要这么麻烦呢?还要写配置文件什么的,后来到了需要用到的场景才知道,还是写配置
         * 文件简单多了....废话就说到这!
         */
        StringBuffer sb = new StringBuffer(a);
        sb.append("bbb");//追加字符bbb
        //我们这边就可以用到new String(sb);将StringBuffer转换为String类型,然后返回出数据
        return new String(sb);//这样子返回的就是String类型了
    }

    public static void main(String[] args) {
        System.out.println(testaa());
    }
} 输出结果 aaabbb,注意上面的代码是不能用String c = sb;这样来进行赋值的,会出错,不兼容类型!

2. String的常用方法

    2.1 String str = new String();

              初始化一个新的创建的String对象                 char[] c = {'a','b','c','d','e','f','g'};
String str = new String(c);
//或者可以这样
System.out.println(new String(c));
//返回也可以这样
return nwe String(c);
//输出结果都为
abcdefg

    2.2 compareTo();

               根据字符串的顺序来比较字符串 String a = "abcd";
String b = "abcd";
System.out.println(a.compareTo(b));
//返回结果为0,说明字符串顺序一样
String a = "abcd";
String b = "abcde";
System.out.println(a.compareTo(b));
//返回结果为-1,说明这两个字符串中有一处不同,我在b变量中加了一个e
我感觉有的童鞋会绕进去啊,我这边画个图来说明一下具体是如何比较的
我先简单的说明一下,首先我们有两个变量 a = "abcd"   b = "abcd" 然后我们使用compareTo();来进行对比
a.compareTo(b); 它首先是a b变量中的字符串拆分出来(是不是拆分了我不知道,不过我是这样理解的,嘻嘻)就形成了以下这样,注意以下表格第一列是a变量中的数据,第二列是b变量中的数据
                                A 变量中的数据                                                                         B变量中的数据      

aa
bb
cc
dd
  
compareTo();方法首先判断a == a 然后判断 b == b然后在判断cd,判断完了过后,如果都一致,那么就返回0
如果a b某个变量中有一处不同,返回-1,两处不同返回-2,以此类推

    2.3 compareToIanoreCose()

               判断两个字符串是否相同,不考虑大小写String a = "ABCD";
String b = "abcD";
System.out.println(a.compareToIgnoreCase(b));
//返回结果为0 compareToIgnoreCose();方法的返回结果我就不在详细介绍了,和上面的返回结果一样,如果两个字符串相同则返回0,有一处不同则返回-1,以此类推

       2.4 hashCode(); 

                    返回字符串的哈希码,具体什么是哈希码我也没有具体了解过..String a = "abcd";
System.out.pritnln(a.hashCode());
//返回2987074大家可以去百度一下什么是哈希码..键盘没去了解过,所以这边不能给大家解释了  T  T

        2.5 replace() 和replaceAll();

                     replace();替换符合条件的字符串字符串                     replaceAll();替换所有符合条件的字符串  
String a = "aaabbb";
System.out.println(a.replace("aaab","b"));
//输出结果为bbb,它将最前面的aaab给换成了b,所以输出结果为bbb
            replaceAll();这个方法的话我这边就不演示了,因为需要好多好多的字符,我也不清楚,replaceAll();这个方法我只在大量的字符串中用过,少数的我都没用过,抱歉啦!
其实String还有超多方法,大家兴趣的可以去看api中的String类
那String我就讲到这了,下一张将八大数据类型的封装类,如:Integer
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  String Java