一篇关于Java string超详细解说!坚持看到最后你一定会有收获!

JavaString类

  • 字符串是常量,创建之后不可改变
  • 字符串字面值存储在字符池中,可以共享。
  • String s = "Hello";产生一个对象,字符串池中存储
  • String s = new String("Hello");//产生两个对象,堆和池各存储一个。
package com.cnblogs;
//本类用于实现
public class Application {
    public static void main(String[] args) {
        String name = "Hello";//"hello" 存储在字符串池中
        name = "张三";//"张三"赋值给name变量,给予字符串时,并没有修改数据,而是重新开辟空间
        String name2 = "张三";//name2也指向字符串池的“张三”
        加入Java开发交流君样:484138291一起吹水聊天
        //演示字符串的另一种创建方式 new String
        String str = new String("Java是最好的编程语言");
        String str2 = new String();
        System.out.println(str == str2);//false
        System.out.println(str.equals(str2));//false
    }
}


常用方法

  • public int length():返回字符串的长度
  • public char charAt(int index);根据下标获取字符
  • public boolean contains(String str);判断当前字符串中是否包含str
package com.cnblogs;
//本类用于实现
public class Application {
    public static void main(String[] args) {
        String str ="Java是最好的编程语言";
        //length();
        System.out.println(str.length());//15   空格也算字符
        //charAt(int index)
        System.out.println(str.charAt(str.length() - 1));//言
        //contains(String str);
        System.out.println(str.contains("Java"));//true
        System.out.println(str.contains("php"));//false
    }
}

  • public char[] toCharArray();将字符串转成数组。
  • public int indexOf(String str);查找str首次出现的下标,存在,则返回该下标;不存在,则返回-1;【获取资料】
  • public int lastIndexOf(String str);查找字符串在当前字符串中最后一次出现的下标索引。
package com.cnblogs;

import java.util.Arrays;

//本类用于实现
public class Application {
    public static void main(String[] args) {
        String str ="Java是最好的编程语言,Java,Java很棒";
        //toCharArray();
        System.out.println(Arrays.toString(str.toCharArray()));
        //[J, a, v, a, 是, 最, 好, 的, 编, 程, 语, 言, ,, J, a, v, a, ,, J, a, v, a, 很, 棒]
        //indexOf();
        System.out.println(str.indexOf("Java"));//0
        System.out.println(str.indexOf("程"));//9
        System.out.println(str.indexOf("php"));//-1
        System.out.println(str.indexOf("Java" , 4));//13
        //lastIndexOf();
        System.out.println(str.lastIndexOf("Java"));//18
    }
}

  • public String trim();去掉字符串前后的空格
  • public String toUpperCase();将小写转成大写
  • public String toLowerCase();将大写转成小写
  • public boolean endWith(String str);判断字符串是否以str结尾
  • public booleanstartsWith(String str);判断字符串是否以str开头
package com.cnblogs;

import java.util.Arrays;
import java.util.Locale;

//本类用于实现
public class Application {
    public static void main(String[] args) {
        String str ="    Hello World  ";
        //trim();
        System.out.println(str.trim());//Hello World
        //toUppercase(); toLowerCase()
        System.out.println(str.toUpperCase());//    HELLO WORLD
        System.out.println(str.toLowerCase());//    hello world
        //endWith(str)
        String str2 = "Application.java";
        System.out.println(str2.endsWith(".java"));//true
        System.out.println(str2.startsWith("Application"));//true
    }
}

  • public String replace(char oldChar,char newChar);将旧字符串替换成新字符串
  • public String[] split(String str);根据str做拆分
package com.cnblogs;
加入Java开发交流君样:484138291一起吹水聊天
import java.util.Arrays;
import java.util.Locale;

//本类用于实现
public class Application {
    public static void main(String[] args) {
        String str = "Java是最好的编程语言";
        //replace(char old,char new);
        System.out.println(str.replace("Java","php"));//php是最好的编程语言
        //split();
        String str2 = "java is the best programing language";
        String str3 = "java is the best programing language,hello,World";
        String str4 = "java is the best programing      language,hello,,,World";
        String[] arr = str2.split(" ");//以空格拆分
        String[] arr2 = str3.split("[ ,]");//以空格和逗号拆分
        String[] arr3 = str4.split("[ ,]+");//以(多个)空格和逗号拆分
        System.out.println(arr.length);//6
        System.out.println(arr2.length);//8
        System.out.println(arr3.length);//8
        System.out.println(Arrays.toString(arr));
        //[java, is, the, best, programing, language]
        System.out.println(Arrays.toString(arr2));
        //[java, is, the, best, programing, language, hello, World]
        System.out.println(Arrays.toString(arr3));
        //[java, is, the, best, programing, language, hello, World]
    }
}

  • equals();
  • compare();
package com.cnblogs;

import java.util.Arrays;
import java.util.Locale;

//本类用于实现
public class Application {
    public static void main(String[] args) {
        String str1 = "hello";
        String str2 = "Hello";
        System.out.println(str1.equals(str2));//false
        System.out.println(str1.equalsIgnoreCase(str2));//忽略大小写的比较 true

        String str3 = "abc";//97
        String str4 = "xyz";//120
        System.out.println(str3.compareTo(str4));//-23

        String str5 = "abc";
        String str6 = "abcxyz";
        System.out.println(str5.compareTo(str6));//-3 长度相减
    }
}

常用方法的练习

package com.cnblogs;

import java.util.Arrays;

public class TestString {
    /*
    需求:
        已知String str = "this is a text"
        1.将str中的单词单独获取出来
        2.将str中的text替换为practice
        3.将text前面插入一个easy
        4.将每个单词的首字母改为大写
     */加入Java开发交流君样:484138291一起吹水聊天
    public static void main(String[] args) {
        String str = "this is a text";
        //1
        String[] arr = str.split(" ");
        System.out.println(Arrays.toString(arr));//[this, is, a, text]
        //2
        String str2 = str.replace("text","practice");
        System.out.println(str2);//this is a practice
        //3
        String[] arr2 = Arrays.copyOf(arr,5);
        String ch;
        ch = arr2[3];
        arr2[3] = "easy";
        arr2[4] = ch;
        System.out.println(Arrays.toString(arr2));//[this, is, a, easy, text]
        String str3 = str.replace("text","easy test");
        //优解    System.out.println(str3);//this is a easy test
        //4
//        char[] arr3 = str.toCharArray();
//        System.out.println(Arrays.toString(arr3));//[t, h, i, s,  , i, s,  , a,  , t, e, x, t]
//        arr3[0] = 'T';
//        arr3[5] = 'I';
//        arr3[8] = 'A';
//        arr3[10] = 'T';
//        for(char x : arr3){
//            System.out.print(x);
//        }
//        //This Is A Text

        //优解
        for (int i = 0; i < arr.length; i++) {
            //charAt() 方法用于返回指定索引处的字符。
            char first = arr[i].charAt(0);
            //toUpperCase() 把符转成大写
            char upperfirst = Character.toUpperCase(first);
            //substring(beginIndex) 返回从起始位置(beginIndex)至字符串末尾的字符串。
            String news = upperfirst + arr[i].substring(1);
            System.out.println(news + " ");
        }加入Java开发交流君样:484138291一起吹水聊天
        //This Is A Text 
    }
}

可变字符串

  • StringBuffer:可变长字符串,JDK1.0提供,运行较慢,线程安全
  • StringBuilder:可变长字符串,JDK5.0提供,运行效率快,线程不安全
package com.cnblogs;

public class TestString {
    /*
    本类测试StringBuffer和StringBuilder的使用
     */
    public static void main(String[] args) {
        //均可以使用以下方法
        //StringBuffer str = new StringBuffer();
        StringBuilder str = new StringBuilder();
        //1.append();追加
        str.append("java世界第一");
        System.out.println(str.toString());//java世界第一
        str.append(",java真香");
        System.out.println(str.toString());//java世界第一,java真香
        str.append(",java真不错");
        System.out.println(str.toString());//java世界第一,java真香,java真不错
        //insert();添加
        str.insert(0,"我加在了最前面!");
        System.out.println(str.toString());//我加在了最前面!java世界第一,java真香,java真不错
        //replace();替换
        str.replace(0,4,"我住在了");
        System.out.println(str.toString());//我住在了最前面!java世界第一,java真香,java真不错
        //delete();删除
        str.delete(0,4);
        System.out.println(str.toString());//最前面!java世界第一,java真香,java真不错
        //清空
        str.delete(0,str.length());
        System.out.println(str.toString());//
    }
}

package com.cnblogs;

public class TestString {
    /*
    本类测试StringBuilder的使用效率高于String
     */
    public static void main(String[] args) {
//        //开始时间
//        long start = System.currentTimeMillis();
//        String str = "";
//        for (int i = 0; i < 99999; i++) {
//            str += i;
//        }
//        System.out.println(str);
//        //结束时间
//        long end = System.currentTimeMillis();
//        System.out.println("用时:" + (end - start));//32708
        long start = System.currentTimeMillis();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 99999; i++) {
            sb.append(i);
        }
        System.out.println(sb);
        long end = System.currentTimeMillis();
        System.out.println("用时:" + (end - start));//30
    }
}

标签: 常用类, java

在这里插入图片描述
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354

推荐阅读更多精彩内容