Java中String练习操作

/**
 * Created by test on 2017/7/6.
 */
public class StringTest {
    public static void main(String[] args){
        String s1 = new String(); // 空构造函数
        String s2 = new String("hello"); // String参数生成一个字符串
        //String s3 = new String(char tmp[]);

        // 1. 字符串的内容一旦被创建就不可改变,只是改变了s3的引用,test1的内容没变!
        String s3 = "test1";
        s3 = "test2";
        System.out.println("s3" + s3);

        // 2. s4 = s1 + s2,但和s3不等!!(可通过intern()方法判断是否包括了相同的String对象)

        String str1 = "fly";
        String str2 = "weight";
        String str3 = "flyweight";
        String str4 = null;
        str4 = str1 + str2;
        // 如果字符串1和字符串2通过+连接产生的对象时test3指向的,那么表示字符串是可变的!
        System.out.println(str3 == str4);
        // 如果不是str3表示的字符串,那么表示两个连接后产生了新的字符串对象。用str4来指定
        str4 = (str1 + str2).intern();
        // 要想str3str4值向同一个对象就可以通过.intern()这个方法来达到
        System.out.println(str3 == str4);*/

        // 3. length(), 一个汉字算一个字符
        String s1 = "我爱大北京"; // 一个汉字算一个字符
        String s2 = "abcde";
        System.out.println(s1.length());
        System.out.println(s2.length());

        //4. charAt(),返回所在索引位置的字符,索引从0开始算
        String s1 = "我爱大北京"; // 一个汉字算一个字符
        String s2 = "abcde";
        System.out.println(s1.charAt(3));
        System.out.println(s2.charAt(2));

        //5.equals方法,equalsIgnoreCase方法
        String tom = new String("we are students");
        String jick = new String("We are students");
        String jerry = new String("we are students");
        System.out.println(tom.equals(jick));
        System.out.println(tom.equals(jerry));

        // 6. equals“==”==可用于基本类型的比较,如果用于引用对象则表明是否指向同一个对象!
        //    equals一般用于对象的比较
        String str1 = new String("caterpillar");
        String str2 = new String("caterpillar");
        System.out.println(str1 == str2);
        System.out.println(str1.equals(str2));// str1str2所对应的字符串内容一样

        //7.compareTocompareToIgnoreCase方法,是按照字典顺序与参数s进行比较;
        String s1 = "tjitcast";
        String s2 = "csdn";
        String s3 = new String("csdn");
        System.out.println(s1.compareTo(s2));// s1 > s2,取值为正
        System.out.println(s3.compareTo(s2)); // 内容相等,取值为零

        // 8. indexOf,进行字符串搜索,搜索不到则返回为-1
        String s1 = "北京海淀区昌平区朝阳区西城区";
        System.out.println(s1.indexOf("")); // 返回首次出现的位置,如果没有找到则返回为-1
        System.out.println(s1.indexOf(""));

        System.out.println(s1.indexOf("", 5)); //从指定位置进行搜索

        System.out.println(s1.lastIndexOf("")); //最后一次出现的位置
        System.out.println(s1.lastIndexOf("", 12)); //查找12位置之前最后一次出现的位置

        // 9. startsWith, endsWith,是否以指定的前缀或者后缀开始或者结束
        String tom = "229402-432-43345345";
        String jerry = "99099009009023232301";
        System.out.println(tom.startsWith("229"));
        System.out.println(jerry.endsWith("4301"));

        //10. regionMatches方法
        // regionMatches(int firstStart, String other, int otherStart, int length)
        // 当前字符串从firstStart位置截取长度为length字符串,与字符串other,从otherStart位置截取length字符串进行比较;
        String s1 = "北京aaaaaaaa";
        String s2 = "天津aaaaaaaa";
        System.out.println(s1.regionMatches(2, s2, 2, 8));


        // 11. 字符串修改 substring,进行字符串截取,但不改变原来字符串内容
        String s1 = "北京海淀区昌平区";
        System.out.println(s1.substring(2));
        System.out.println(s1.substring(2, 5));

        // 12. replace()进行字符串替换(所有出现的都进行替换)
        String s1 = "mesquite in your cellar".replace('e', 'o');
        System.out.println("s1: " + s1);
        String s2 = "the war of baronets".replace('r', 'y');
        System.out.println("s2: " + s2);
        String s4 = "JonL";
        System.out.println(s4.replace('o', 'g'));
        System.out.println("s4: " + s4);

        //13 . trim()去掉开始、结束的空格
        String s1 = " my name is xmh ";
        System.out.println(s1);
        System.out.println(s1.trim());

        //14. concat方法,将指定字符串连接到此字符串的结尾,返回的的字符串为新创建的String对象
        String s1 = "cares";
        s1.concat("1");
        System.out.println("s1 : " + s1);

        // 15. split方法:根据给定的正则表达式的匹配来拆分此字符串
        String[] fakeFileData = {
                "justin\t64/5/26\t0939002302\t5433343",
                "momor\t68/7/23\t0939100391\t5432343"
        };
        for(String data : fakeFileData){
            String[] tokens = data.split("\t");
            //\t为字符串的分割符号
            for(String token : tokens){
                System.out.print(token + ",");
            }
            System.out.println();
        }

        //16. 转换为整型
        int x;
        String s = "6542";
        x = Integer.parseInt(s);
        System.out.println("x: " + x);
        float n = Float.parseFloat(s);
        System.out.println("n: " + n);

        // 17. 将字符串中的字符复制到字符数组
        String s1 = "mynameisxmh";
        char[] temp = new char[6];
        s1.getChars(2, 8, temp, 0);
        for(char r : temp){
            System.out.println("r: " + r);
        }














    }
}
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值