首页 > 编程语言 >学习Java的第十天

学习Java的第十天

时间:2024-03-15 10:59:53浏览次数:26  
标签:Java 第十天 int 创建 学习 str 字符串 方法 String

本章来讲一下什么是字符串

一、什么是字符串

在Java中,最常见的基本类型就是字符串了,哪哪都能见到,如输入语句,输出语句等!那么,什么是字符串呢,字符串就是String类,String类是Java中表示字符串的类。它是不可变的,一旦创建了一个字符串对象,就无法修改它。

二、String类和StringBuilder类有什么区别?

  • String类和StringBuilder类的最主要区别在于可变性。String类是不可变的,一旦创建了一个字符串对象,就无法修改它。而StringBuilder类是可变的,可以在缓冲区中修改字符串,而不必创建新的对象。
  • 另一个区别在于性能。由于String类是不可变的,对字符串进行操作时需要创建新的字符串对象,这可能会导致性能问题。StringBuilder类是可变的,可以避免这种问题,因此它的性能比String类更好。

三、创建字符串

1、创建一个String对象,并初始化一个值。

String类是不可改变的,一旦创建了一个String对象,它的值就不能改变了。
如果想对字符串做修改,需要使用StringBuffer&StringBuilder类。

//直接创建方式
String str1 = "abc";
//提供一个 字符数组 参数来初始化字符串
char[] strarray = {'a','b','c'};
String str2 = new String(strarray);

 char为字符类型,String为字符串类型
String字符串是用" "来包含串的, char是用’ '来包含单字符的
String内部用来存储的结果是一个char字符数组

String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上:

String s1 = "Runoob";              // String 直接创建
String s2 = "Runoob";              // String 直接创建
String s3 = s1;                    // 相同引用
String s4 = new String("Runoob");   // String 对象创建
String s5 = new String("Runoob");   // String 对象创建

2、如何将一个整数转换为字符串

可以使用Integer类的toString()方法将一个整数转换为字符串

int i = 123;
String s = Integer.toString();

3、如何将一个字符串转换为整数

可以使用Integer类的parseInt()方法将一个字符串转换为整数

String s = "123";
int i = Integer.parseInt(s);

四、字符串的常用方法

1、获取字符串长度

用于获取有关对象的信息的方法称为访问器方法。

String 类的一个访问器方法是 length() 方法,它返回字符串对象包含的字符数。

下面的代码执行后,len 变量等于 14:

public class StringDemo {
    public static void main(String args[]) {
        String site = "www.runoob.com";
        int len = site.length();
        System.out.println( "菜鸟教程网址长度 : " + len );
   }
}

2、连接字符串

String 类提供了连接两个字符串的方法:

string1.concat(string2);

示例:

public class StringDemo {
    public static void main(String args[]) {     
        String string1 = "菜鸟教程网址:";     
        System.out.println("1、" + string1 + "www.runoob.com");  
    }
}

3、字符串查找

int indexOf(String s):字符串s在指定字符串中首次出现的索引位置,如果没有检索到字符串s,该方法返回-1
int lastIndexOf(String s):字符串s在指定字符串中最后一次出现的索引位置,如果没有检索到字符串s,该方法返回-1;如果s是空字符串,则返回的结果与length方法的返回结果相同,即返回整个字符串的长度。

int idx = str.indexOf("a");//字符a在str中首次出现的位置
int idx = str.lastIndexOf("a");

4、获取指定位置的字符串

char charAt(int index)方法:返回指定索引出的字符

String str = "abcde";
char thischar = str.charAt(3);//索引为3的thischar是"d"

5、获取子字符串

String substring()方法:实现截取字符串,利用字符串的下标索引来截取(字符串的下标是从0开始的,在字符串中空格占用一个索引位置)

  • substring(int beginIndex):截取从指定索引位置开始到字符串结尾的子串
  • substring(int beginIndex, int endIndex):从beginIndex开始,到endIndex结束(不包括endIndex)
String str = "abcde";
String substr1 = str.substring(2);//substr1为"cde"
String substr2 = str.substring(2,4);//substr2为"cd"

6、去除字符串首尾的空格

String trim()方法

String str = " ab cde ";
String str1 = str.trim();//str1为"ab cde"

在这就不一一给你介绍了,想了解更多方法的作用可以查看Java API文档 

标签:Java,第十天,int,创建,学习,str,字符串,方法,String
From: https://blog.csdn.net/AE_BD/article/details/136719476

相关文章

  • 授之以渔不是授之以鱼-docker maven 构建java工程
    原始的maven构建语句mvncleaninstall-Dmaven.test.skip=true现在需要在一台新的安装有docker的机子上构建,要求用jdk17和maven3.9,这台机子较旧,只有jdk8和jdk11,但是有安装docker,在不动构建机器现有软件的情况下构建。dockerrun\--rm\-v$(pwd):$(pwd)......
  • 强化学习:技术创新与应用实践
    目录前言1强化学习原理和分类1.1强化学习的原理1.2基于值函数的方法1.3基于策略的方法1.4深度强化学习2强化学习应用2.1游戏领域2.2机器人控制2.3金融交易3未来展望结语前言强化学习(ReinforcementLearning)作为人工智能领域的重要分支之一,通过智能体与环......
  • 迁移学习的技术突破与应用前景
    目录前言1迁移学习技术1.1原理与分类1.2主要挑战2迁移学习应用2.1计算机视觉2.2医疗健康3未来展望3.1推动各领域发展3.2提高模型泛化能力和效果3.3在新兴领域中广泛应用结语前言迁移学习作为机器学习领域的重要技术之一,以其能够将从一个任务中学到的知......
  • Hologres学习
    Hologres一.什么是实时数仓HologresHologres是阿里巴巴自主研发的一站式实时数仓引擎(Real-TimeDataWarehouse),支持海量数据实时写入、实时更新、实时加工、实时分析,支持标准SQL(兼容PostgreSQL协议和语法,支持大部分PostgreSQL函数),支持PB级数据多维分析(OLAP)与即席分析(AdHoc),支持高......
  • Java中实现单例(Singleton)模式的八种方式
    单例模式定义单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。基本的实现思路单例模式要求类能够有返回对象一个引用(永远是同一个)和一个获得该实......
  • Java序列化和反序列化机制
    Java的序列化和反序列化机制问题导入:在阅读ArrayList源码的时候,注意到,其内部的成员变量动态数组elementData被Java中的关键字transient修饰transient关键字意味着Java在序列化时会跳过该字段(不序列化该字段)而Java在默认情况下会序列化类(实现了Java.io.Serializable接口......
  • 猫头虎分享已解决Bug | 成功解决java.lang.OutOfMemoryError: Java heap space错误
    博主猫头虎的技术世界......
  • 哇!什么情况?这么好看的个人博客首页,还这么简单,这简直就是为呆呆的我学习量身准备的
    在这个万物vue的年代,网页设计越来越框架化。上网搜个资料学习学习吧,咵咵咵,“游泳健身,vue了解一下”我只是想简单地学个html,js啊!怎么就这么复杂!曾几何时,在网上找个网页模板,纯纯的html不带一点儿复杂的东西,最多加点儿jquery。我上面加个头就能当jsp的课后作业了。虽然这种东西......
  • 高端,漂亮,看的过眼的模板才能激起我的学习兴趣嘛
    在这个万物vue的年代,网页设计越来越框架化。上网搜个资料学习学习吧,咵咵咵,“游泳健身,vue了解一下”我只是想简单地学个html,js啊!怎么就这么复杂!曾几何时,在网上找个网页模板,纯纯的html不带一点儿复杂的东西,最多加点儿jquery。我上面加个头就能当jsp的课后作业了。虽然这种东......
  • [转][Java] Date 的替代品 Instant
    来自:https://mp.weixin.qq.com/s/SotzqrKAfrND88n12QFCEA怎么改?只能说这种基础的类改起来牵一发动全身,需要从DO实体类看起,然后就是各种Converter,最后是DTO。由于我们还是微服务架构,业务服务依赖于基础服务的API,所以必须要一起改否则就会报错。这里就不细说修改流程了,主要说一下......