【Java】认识String类

这篇具有很好参考价值的文章主要介绍了【Java】认识String类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. String类的重要性

在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提

供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字

符串应用又非常广泛,因此Java语言专门提供了String类。

可以使用String直接定义一个变量,这个变量可以直接就是字符串:
【Java】认识String类

2. 常用方法

2.1 字符串构造+求字符串长度

1.直接定义一个字符串。

2.通过new String对象。

3.通过字符串数组进行构造。

public static void main1(String[] args) {
        //1.直接定义一个字符串
        String str="hello";//区别于C语言,Java中的字符串,没有以'\0'结尾
        System.out.println(str);
        System.out.println(str.length());
        System.out.println("hello".length());

        //2.通过new String对象
        String str3=new String("world");
        System.out.println(str3);

        //3.通过字符串数组进行构造
        char[] array={'a','b','c'};
        String str4=new String(array);
        System.out.println(str4);

        int[] array2={1,2,3,4,5};
        System.out.println(array2.length);

    }

2.2 String对象的比较

用于两个字符串比较:
1.==
2.equals
3.compareTo
4.compareToIgnoreCase

public static void main2(String[] args) {
        String str1=new String("abcde");
        String str2=new String("abcde");

        System.out.println(str1==str2);//==:实质是比较字符串的地址,false
        System.out.println(str1.equals(str2));//String类重写了父类Object中equals方法,Object中equals默认按照==比较,                                                                      //String重写equals方法后,就会发生动态绑定true,

        String str3=new String("abcde");
        String str4=new String("abcde");
        System.out.println(str3==str4);//字符串常量池!

    }

字符串常量池:

  • 1.存储双引号“ ”,引起来的字符串,存的是字符串常量值。
  • 2.看常量池是否存在当前字符串。
  • 3.如果没有,则存进去。
  • 4.如果有,则获取这个字符串在常量池中的地址。
public static void main3(String[] args) {
        String str1=new String("abcde");
        String str2=new String("abcdef");
        System.out.println(str1.compareTo(str2));
        
        String s1=new String("Abcde");
        String s2=new String("abcdef");
        System.out.println(s1.compareToIgnoreCase(s2));//忽略大小写比较
    }

2.3 字符串查找

用于字符串查找:

1.char charAt(int index):返回index位置上字符,如果index为负数或者越界,抛出IndexOutOfBoundsException异常。

2.int indexOf(int ch) :返回ch第一次出现的位置,没有返回-1。

3.int indexOf(int ch, int fromIndex):从fromIndex位置开始找ch第一次出现的位置,没有返回-1。

4.int indexOf(String str) :返回str第一次出现的位置,没有返回-1。

5.int indexOf(String str, int fromIndex):从fromIndex位置开始找str第一次出现的位置,没有返回-1。

6.int lastIndexOf(int ch) :从后往前找,返回ch第一次出现的位置,没有返回-1。

7.int lastIndexOf(int ch, int fromIndex):从fromIndex位置开始找,从后往前找ch第一次出现的位置,没有返回-1。

8.int lastIndexOf(String str) :从后往前找,返回str第一次出现的位置,没有返回-1。

9.int lastIndexOf(String str, int fromIndex):从fromIndex位置开始找,从后往前找str第一次出现的位置,没有返回-1。

public static void main5(String[] args) {
        String str1="abcdef";
        //获取指定位置的字符
        char ch=str1.charAt(2);
        System.out.println(ch);

        int index=str1.indexOf('c',3);
        System.out.println(index);

        int index2=str1.indexOf('c',5);
        System.out.println(index2);
        
        String s1="abcdaefd";
        int index3=s1.lastIndexOf('a',2);
        System.out.println(index3);   
    }

总结一下:

  • 如果找单个字符,则用charAt方法;
  • 找字符或字符串,则返回所需要的下标;
  • 如果是从前往后找,则用indexOf方法;
  • 如果是从后往后找,则用lastIndexOf方法;

2.4 转化

public static void main6(String[] args) {
        //数字转字符串
        String s1=String.valueOf(12.34);
        System.out.println(s1);

        String s2=String.valueOf(1234);
        System.out.println(s2);

        String s3=String.valueOf(false);
        System.out.println(s3);
        System.out.println("======================");
        
        //字符串转数字
        int data1=Integer.parseInt("1234");//转化成整数
        System.out.println(data1);

        double data2=Double.parseDouble("12.34");//转换成Double类型的小数
        System.out.println(data2);
        
        //也可以定义一个学生类,直接在valueOf里面定义一个new Student类型
        String s4=String.valueOf(new Student(10));
        System.out.println(s3);
    }
    
    //s4:
    class Student{
        private int age;
        public Student(int age){
            this.age=age;
        }

    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                '}';
    }
}

2.5 字符串替换

字符串替换:

1.String replaceAll(String regex, String replacement) :替换所有的指定内容。或String replace(String regex,

String replacement)

2.String replaceFirst(String regex, String replacement) :替换收个内容。

public static void main8(String[] args) {
        String str="abababcedf";
        String ret=str.replace("ab","oo");
        System.out.println("==========================");

        String ret2=str.replaceFirst("a","p");
        System.out.println(ret2);
        System.out.println("===========================");

        String ret3=str.replaceAll("a","p");
        System.out.println(ret2);
    }

2.6 字符串截取

字符串截取:

1.String substring(int beginIndex) :从指定索引截取到结尾

2.String substring(int beginIndex, int endIndex) :截取部分内容

 public static void main(String[] args) {
        String s="abcd";
        String ret=s.substring(0);
        System.out.println(ret);
        
        String ret2=s.substring(1,3);//在Java里面,左闭右开:[1,3)
        System.out.println(ret2);
        
        String s2="    abcd  ";
        System.out.println(s2);
        String ret1=s2.trim();
        System.out.println(ret1);
    }

2.7 字符串拆分

字符串拆分:

1.String[] split(String regex) :将字符串全部拆分。

2.String[] split(String regex, int limit) :将字符串以指定的格式,拆分为limit组。

public static void main9(String[] args) {
        String str="abc&de&f=10";
        String[] strings=str.split("&");
        for (int i = 0; i < strings.length; i++) {
            System.out.println(strings[i]);
        }
        
        //打印:
        String[] strings2=str.split("=");
        for (int i = 0; i < strings2.length; i++) {
            System.out.println(strings2[i]);
        }

        String[] strings3=str.split("&",2);
        for (int i = 0; i < strings.length; i++) {
            System.out.println(strings[i]);
        }
        
        //比如,\" . \"点号,如果要识别IP地址中的点号,直接通过split进行拆分是识别不出点号作为分割符的,需要加上转义字符,也就    是  \\\\.
        String str="199.2.34";
        System.out.println(str);
        String[] strings=str.split("\\.");//以//来转换'.'
        for (int i = 0; i < strings.length; i++) {
            System.out.println(strings[i]);
        }
        
        //如果是一个字符串中有多个分隔符,那么用 | 作为连字符
        String str="abc&de&f=10";
         String[] strings2=str.split("=|&");
        for (int i = 0; i < strings2.length; i++) {
            System.out.println(strings2[i]);
        }

    }

2.8 其他操作方法

其他操作方法:

String trim() :去掉字符串中的左右空格,保留中间空格。

String toUpperCase(): 字符串转大写。

String toLowerCase() :字符串转小写。

String.format():修改输出形式。

2.8.1 String trim()

public static void main(String[] args) {
        String s2="    abcd  ";
        System.out.println(s2);
        String ret1=s2.trim();
        System.out.println(ret1);
    }

2.8.2 String toUpperCase()

public static void main12(String[] args) {
        String s="abcd";
        System.out.println(s.toUpperCase());
        String s2="ABCd";
        System.out.println(s2.toLowerCase());
    }

2.8.3 String.format()

public static void main7(String[] args) {
        String s1="hello";
        char[] array=s1.toCharArray();
        for(int i=0;i<array.length;i++){
            System.out.println(array[i]+" ");
        }
        System.out.println();

        String s=String.format("%d-%d-%d",2004,6,2);
        System.out.println(s);
    }

3. 总结!

方法 作用
charAt() 输入下标,找单个字符
toUpperCase() 字母由小写转换成大写
toLowerCase() 字母由大写转换成小写
replace()/replaceAll() 代替字符串中的字符
replaceFrist() 代替字符串中的首个字符
String.equals() 比较字符串相不相等,返回boolean类型
String.compareTo() 比较字符串相不相等,返回int类型
equalsToIgnoreCase() 忽略字母大小写,比较字符串相不相等
split() 对字符串进行拆分,注意特殊字符,需要进行转义
trim() 去字符串,首部和尾部的空格,但要保留中间空格
format() 格式化输出
String.valueof() 数字转字符串
Integer.parselnt()/Integer.valueOf() 字符串转数字
indexOf() 从前往后找字符串或字符,返回下标
lastIndexOf() 从后往前找字符串或字符,返回下标
subString() 截取字符串
toCharArray() 字符串转数组
new String() 数组转字符串

💓 感谢阅读!代码的注解很重要哟!文章来源地址https://www.toymoban.com/news/detail-441381.html

到了这里,关于【Java】认识String类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java009——Java数据类型简单认识

    围绕以下3点学习: 1、什么是Java数据类型? 2、Java数据类型的作用? 3、Java有哪些数据类型? 4、熟悉Java8大基本数据类型 当我们写Java代码时,需要把数据保存在 变量 (指值可以变的量,例如:数学中假设x,y,z变量一样)中,这些变量的类型可以是整数(如100,5,50)、小

    2024年02月08日
    浏览(25)
  • 初步认识Java

           Java 语言源于 1991 年 4 月,Sun 公司 James Gosling 博士 领导的绿色计划(Green Project) 开始启动,此计划最初的目标是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个就是Java的前身: Oak (得名与Java创始人James Gosling办公室外的一棵橡

    2024年04月27日
    浏览(24)
  • 认识Java

    1991年,由Sun公司开发Oak,最初为家用消费电子产品进行编程,是Java前身。 1994年,使用Oak语言编写了Web浏览器 1995年,改名为Java , 96年发布JDK1.1 … 1998年,发布JDK1.2,从语言发展为平台 … 2004年,发布JDK1.5 开发大型企业的应用程序; 增强WWW服务器的功能; 动画游戏的设计

    2024年02月05日
    浏览(24)
  • Java 认识异常

      登神长阶 第五阶 认识异常 🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀  目录 🛠️一.异常的概念与体系结构 🗡️1.异常的概念 🪃2.异常的体系结构 🪃3.异常的分类 🏹二. 异常的处理  🛡️1.常用的处理方式 🪚2.异常的抛出  🔧3.异常的捕获  🪛

    2024年03月19日
    浏览(38)
  • 【Java扫盲篇】String、String Buffer和String Builder的区别

    你在面试时,面试官让你讲讲 String String Buffer String Builde r的区别,你是否能流畅的、完整的叙述出他们三者的区别? 相同点: 他们的底层都是由char数组实现的。 不同点: String对象一旦创建,是不能修改的,如果要修改,会重新开辟空间来存储修改后的对象;而String Buffer和

    2024年04月22日
    浏览(27)
  • 初步认识Java垃圾回收算法

    GCRoot指被栈上直接或间接引用的对象,或被本地方法栈直接或间接引用的对象,或被方法区引用的对象。 被引用的对象是不能被删除的。 如果对象跟GCRoot并没有直接或间接相连的关系,那么这些对象就可以被删除了。 标记-清理 :将需要删除的对象标记一下,标记完了再扫

    2024年02月11日
    浏览(42)
  • 不就是Java吗之 认识异常

    大家好 , Java 专栏本应该早就完成的 但是之前发表异常的文章的时候 , 超过当天发布文章限制了 所以那时候就没上传成功 , 真的深感抱歉 刚才发现竟然少文章了 另外祝大家新年快乐 大年初七别忘了吃面条 在计算机程序运行的过程中,总是会出现各种各样的错误。 在 Java 中

    2024年01月23日
    浏览(40)
  • Java——面向对象的初步认识

    目录 一.什么是面向对象 二.面向对象与面向过程 1. 传统洗衣服过程(面向过程) 2. 现代洗衣服过程(面向对象) Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。 面向对象是解决问题的一种思想,主要依靠对象之间的交互完成

    2024年04月13日
    浏览(33)
  • Java语言-----泛型的认识

    目录 一.什么是泛型 二.泛型类的使用 2.1泛型类的定义  2.2泛型类的数组使用 三.泛型的上界  四.泛型的方法 五.泛型与集合 😽个人主页: tq02的博客_CSDN博客-C语言,Java领域博主  🌈梦的目标:努力学习,向Java进发,拼搏一切,让自己的未来不会有遗憾。  🎁欢迎各位→点

    2023年04月23日
    浏览(37)
  • 快速认识,后端王者语言:Java

    Java作为最热门的开发语言之一,长居各类排行榜的前三。所以,就算你目前不是用Java开发,你应该了解Java语言的特点,能用来做什么,以备不时之需。 Java 是一种高级、多范式编程语言,以其编译为独立于平台的字节码的能力而闻名。 它是由 Sun Microsystems 的 James Gosling 于

    2024年02月05日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包