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

Java String 对象超详细讲解,再也不怕别人问我String 问题了 正则表达式是一种强大的模式匹配工具,用于在文本中搜索、匹配和替换符合特定模式的字符串。它提供了一种灵活且高效的方式来处理字符串,并具有广泛的应用场景,包括文本处理、数据验证、数据提取等。正则表达式由字符和特殊字符组成,用来描述字符串的模式。普通字符:任何非特殊字符都表示它本身。例如,正则表达式abc将匹配字符串中的"abc"。元字符:具有特殊含义的字符,用于构建更复杂的模式。.:匹配任意单个字符,除了换行符。*:匹配前面的元素零次或多次。+:匹配前面的元素一次或多次。? 阅读详情

在这里插入图片描述

一篇关于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 面试,创建了几个String 对象? 我让你问!让你问!让你问! 字面量,字符串常量池,堆,谁还问我打谁。 阅读详情

相关推荐

海康威视iVMS-4200在银河麒麟系统部署全攻略与疑难排解

在信创国产化进程中,软件兼容性是关键挑战之一。以安防监控领域广泛使用的海康威视iVMS-4200客户端为例,其从Windows环境迁移到银河麒麟等国产操作系统时,面临架构适配、依赖库匹配等核心兼容性问题。这涉及到跨平台软件部署的通用原理:不同CPU架构(如ARM的飞腾、x86的兆芯)和操作系统底层API的差异,要求软件必须进行针对性编译和优化。解决这类问题的技术价值在于保障专业软件在国产化环境中的稳定运行,是信创产业落地的重要环节。具体到应用场景,如在基于银河麒麟V10的安防监控项目中,通过获取对应架构的.

weixin_33423874的博客 1471

java String类(超详细!)

一、前言 1、String表示字符串类型,属于 引用数据类型,不属于基本数据类型。 2、在java中随便使用 双引号括起来 的都是String对象。 例如:“abc”,“def”,“hello world!”,这是3个String对象。 3、java中规定,双引号括起来的字符串,是 不可变 的,也就是说"abc"自出生到最终死亡,不可变,不能变成"abcd",也不能变成"ab" 4、在JDK当中双引号括起来的字符串,例如:“abc” "def"都是直接存储在“方法区”的“字符串常量池”当中的。 5、为什

一只小菜鸡 7万+

机械臂的运动学分析-工业机器人

机械臂的运动学是研究机械臂各连杆坐标系之间的运动关系,是对机械臂进行运动控制的基础。本章分析了所设计的六自由度机械臂的运动学。理论上六自由度机械臂的工作空间是一个近似球形区域,能够覆盖机械臂所在的位置,但由于机械臂关节的运动范围受到限制,机械臂末端会存在一些不能到达的工作死区,使得机械臂的工作范围和灵活性受到限制。理论上六自由度机械臂的工作空间是一个近似球形区域,能够覆盖机械臂所在的位置,但由于机械臂关节的运动范围受到限制,机械臂末端会存在一些不能到达的工作死区,使得机械臂的工作范围和灵活性受到限制。

qq_59137727的博客 6650

JAVA String 常用方法(超详细)

java 的基本String 方法的使用

m0_46319477的博客 5155

MIKE水动力笔记4_制作网格

建立水动力模型前的重要一步就是制作网格,本文所讲内容就是如何在MIKE中制作网格。

晏长街的博客 2万+

51单片机嵌入式开发:14、STC89C52RC 之HX1838红外解码NEC+数码管+串口打印+LED显示

对于C51单片机的设计思路,你可以使用类似的步骤来实现红外解码、数码管显示和LED显示的功能。下面是一个简单的设计思路:(1) 连接HX1838红外解码器、数码管和LED到C51单片机。将HX1838的信号引脚连接到C51单片机的外部中断引脚(例如INT0),数码管的CLK引脚连接到C51单片机的某个IO口引脚,数码管的DIO引脚连接到C51单片机的另一个IO口引脚,LED连接到C51单片机的某个IO口引脚。(2) 在C51的程序中,定义并初始化所需的IO口和外部中断。

sinat_30943509的博客 2977

掌握java中的String 类这一篇就够了

在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字符串应用又非常广泛,因此Java语言专门提供了String类。value被修饰被final修饰,表明value自身的值不能改变,即不能引用其它字符数组,但是其引用空间中的内容可以修改。: 由于字符串是不可变对象, 替换不修改当前字符串, 而是产生一个新的字符串.字符串的比较是常见操作之一,比如:字符串排序。

weixin_74149684的博客 1205

lammps蒙特卡洛MC模拟案例

在lammps中,和MC相关的模拟命令有三个:fix gcmc、fix atom/swap、fix sgcmc。在一个lammps模拟中,mc和md可同时存在,间隔运行,所以设置fix sgcmc命令的同时,可以同时设置系综(nve、nvt或者npt)。lammps官网自带案例中也有一个fix sgcmc的案例,主要模拟FeCu合金的MC建模。sgcmc命令可应用到合金的模拟中,如短程有序模拟。MC运行间隔为100步,最终的浓度比例为0.02,也就是2%的Fe原子交换为Cu原子。大家好,我是小马老师。

lammps_jiayou的博客 1828

String、StringBuilder类超详细笔记

目录String类1. String类的声明2. 创建String字符串对象的四种方式3. String字符串的不可变性String字符串不可变的原因修改字符串内容的两种方式4. 字符串常量池5. String类的常用方法1)equals()方法2)equalsIgnoreCase()方法3)intern()方法4)comparable()方法5)字符串的查找操作6)字符串的替换操作7)字符串的拆分操作8)字符串的截取操作9)其他常用方法将字符串的首字母作大写处理6. String和char的相

weixin_62756510的博客 5821

华为OD面试手撕真题 - 最大数

华为OD面试手撕真题 最大的数 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 345

Wazuh部署记录

Wazuh是一个免费的开源安全平台,统一了XDR和SIEM功能。它可以保护内部部署、虚拟化、容器化和基于云的环境中的工作负载。Wazuh帮助组织和个人保护其数据资产免受安全威胁。它被全球数千个组织广泛使用,从小型企业到大型企业。443:仪表盘界面访问端口1515:探针连接服务器端口1514:探针回传信息端口以上3个端口必须打开防火墙。

墨痕诉清风的博客 1562

Java中“String类“(超详细)

本篇对java中的"抽象类和接口"进行详细的讲解 本期会分成一下四部分进行讲解: String 内存表现形式 String 类的常用方法 String 与 StringBuffer 和 StringBuilder 的区别 String 常用知识和技巧

m0_73158088的博客 2526

工艺边与定位孔设计经验规则总结

工艺边是在SMT焊接时,为了PCB和导轨接触预留的PCB边。工艺边和PCB的接触部分一般需要开槽,或者使用邮票孔,以方便后期去除工艺边。

fydar的博客 1987

Java中的String,这一篇就够了

目录1.String的重要性2.常用语法2.1字符串构造3.StringBuffer和StringBuilder 1.String的重要性 在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字符串应用又非常广泛,因此Java语言专门提供了String类。 2.常用语法 2.1字符串构造 String类提供的构造方式非常多,常用的就以下三种: public

m0_60631323的博客 4421

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【超详细解说String类】包会滴~

在Java中数据类型除了基本数据类型就是引用数据类型,如字符串类型,数组,类,接口。按常理来讲String类的引用数据类型定义的变量,里面存的应该是地址,但事实上输出的确实引用的对象。

weixin_65628316的博客 982

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java String类型数据去除最后两位

Java中如何去除String类型数据的最后两位 在Java中,String是一种不可变的数据类型,这意味着一旦创建了一个String对象,它的值就无法更改。但是有时候我们需要对String类型的数据进行一些处理,比如去除最后两位字符。这篇文章将介绍如何在Java中去除String类型数据的最后两位,并附带代码示例。 为什...

weixin_42395980的博客 568

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java中String、StringBuilder以及StringBuffer的详细解说

在开发过程中,String用到次数是最多的,然而面试题中出现次数较频繁。接下来带大家了解下String,StringBuffer,StringBuilder 的不同点,性能测试和应用场景。 死鬼~看完记得给我来个三连哦!O.O 若有不正之处,请多多谅解和指正,不胜感激。 一、解读String 打开String类文件,String是被Final修饰的: public final class String implements java.io.Serializable, Comparable<S

Mou_O的博客 381

java String StringBuilder删除最后2个字符

给大家整理了一些有关【字符串,Java】的项目学习资料(附讲解~~):https://edu.51cto.com/course/35079.htmlhttps://edu.51cto.com/course/35714.html如何在Java中使用String和StringBuilder删除最后两个字符 在Java编程中...

weixin_28705087的博客 397

java String 删除最后的字符

删除 Java 字符串的最后一个字符:初学者指南 在 Java 中,操作字符串是开发过程中常见的任务之一。对于刚入行的小白来说,了解如何删除字符串的最后一个字符是一个非常实用的技能。本文将详细介绍实现方案,包括每一步的详细说明和示例代码,帮助你达到这个目标。 解决方案流程概述 为了实现删除字符串最后一个字符,我们可以遵循以...

weixin_40701450的博客 556

Java String类【超详细】

前言:在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字符串应用又非常广泛,因此Java语言专门提供了String类。在开发和校招笔试中,字符串也是常客,而且在面试中也频繁被问到,比如:String、StringBuff和StringBulider之间的区别等。

weixin_65476629的博客 474

一篇文章将java中String搞懂、搞透

在读本文之前先想想以下几行代码会输出什么结果。 public class StringDemo{ private static final String MESSAGE="taobao"; public static void main(String [] args) { String a ="tao"+"bao"; String b="tao"; String...

智者之家 1685

【Java SE】超详细讲解String类

本期内容主要讲解Java中String的重要性,以及具体介绍String类常用的方法,比如字符串查找,转换,拆分,截取等等方法。

爱编程爱运动的博客 4544

string包含某个字符串_Java从入门到干活必须要懂的String类,看这一篇足矣

@本文预计阅读时间:8分钟1 初识 String 类小伙伴们几乎都是从第一个 HelloWorld 程序:packagecom.coding.wbppublicclassHelloWorld{//Java入口程序,程序从此开始执行publicstaticvoidmain(String[]args){Stringcontent="Hello,Wo...

weixin_40001309的博客 2946

Java中String类超详细知识点总结~~

什么是APIAPI (Application Programming Interface) :应用程序编程接口java中的API指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。

qq_39914918的博客 943
上一篇: 关于Java泛型你还有什么疑虑?看完这篇一键消除你的小烦恼!
下一篇: 面试被问到如何用Java解决字节流乱码问题?看完这篇教你“从容应敌”!
Danny_java
博客等级 码龄5年 9粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值