java基础--String字符串对象

news2024/10/6 6:18:41

一.掌握创建String字符串对象的两种方式

方式一(常用)

在程序中直接写字符串变量,就是一个String对象

String s1 = "abc"; 
System.out.println(s1);

注意 : 打印字符串类型的变量,是不会看到字符串对象空间地址值的,底层是有优化的,直接看到字符串对象中存储的内容,底层打印对象十六进制地址值的代码

方法二

使用new关键字创造String对象,附带调用String的构造器

第一种,String(): 创建String对象, 内容是" "

String s2 = new String();
System.out.println(s2);

第二种,String(String str):利用提供的String字符串内容,创建String对象

String s3 = new String("黑马");
System.out.println(s3);

第三种,String(char[] chs):根据字符数组中的字符,拼接一个字符串,得到字符串对象

char[] chs = {'传', '播'};
String s4 = new String(chs);
System.out.println(s4);

第四种,String(byte[] bys):根据byte数组中的数字在编码表中的字符,拼接成字符串,得到字符串对象

byte[] bys = {97, 98, 99};
String s5 = new String(bys);
System.out.println(s5);

二.掌握String提供的常见方法的使用

2.1 获取字符串长度 length()

String str = "黑马";
System.out.println(str.length());

//  2

2.2 根据索引获取字符串中的字符,字符串索引从0开始 charAt(int index )

char c = str.charAt(0);
System.out.println(c);

// 黑

注 : 若获取一个不存在的索引位置的字符

char c = str.charAt(2);
System.out.println(c);

//报错:StringIndexOutOfBoundsException,字符串索引越界异常

2.3 将字符串转换成字符数组toCharArray()

char[] chs = str.toCharArry();
for (int i = 0; i < chs.length; i++){
sout(chs[i] + "\t");
}
sout();

//黑
//马

2.4 比较调用方法的字符串和传入方法的字符串的内容是否相同,区分大小写equals(String str)

boolean r1 = "abc".equals("ABC");
sout(r1);

//

2.5 比较两个字符串内容是否相同,不区分大小写equalsIgnoreCase(String str)

boolean r2 = "abc".equalsIgnoreCase("ABc");
System.out.println(r2);

//true

2.6 判断调用方法的字符串是否包含指定的字符串contains(字符串

boolean r3 = "黑马程序员".contains("黑马");
System.out.println(r3);

三. 了解String使用时的注意事项

//1.String字符串对象是不可变的字符串对象
        String name = "黑马";
        System.out.println(System.identityHashCode(name));

        name += "程序员";
        System.out.println(System.identityHashCode(name));

        name += "播妞";
        System.out.println(System.identityHashCode(name));

        //这里的不可变,指的是对象空间中的字符串内容不可变,但不代表字符串对象不可变
        System.out.println(name);
String s1 = "abc";
        String s2 = "abc";
        System.out.println(s1 == s2); // true

        char[] chs = {'a', 'b', 'c'};
        String s3 = new String(chs);
        String s4 = new String(chs);
        System.out.println(s3 == s4); // false

        String s5 = "abc";
        String s6 = "ab";
        String s7 = s6 + "c";
        System.out.println(s5 == s7); // false

        String s8 = "a" + "b" + "c"; // Java有编译优化机制,如果一个运算中只有字面量没有变量,编译后会直接得到结果
        System.out.println(s5 == s8); // true

Random

import java.util.Random;
public static void main(String[] args) {
        String code = getCode(5);
        System.out.println("验证码:" + code);
    }

    /**
     * 1.定义方法
     * 明确参数:int n,验证码的位数
     * 明确返回值:String,获取的验证码
     */
    public static String getCode(int n) {
        //2.定义两个字符串变量,分别代表验证码和验证码要用到的字符
        String code = "";
        String data = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

        //3.随机功能使用Random
        Random r = new Random();

        //4.循环n次,每次生成一个随机字符,拼接到code字符串上
        for (int i = 0; i < n; i++) {
            //获取一个随机整数,代表字符串的索引,范围是:0到字符串的长度减1
            int index = r.nextInt(data.length());

            //根据索引从data字符串中获取字符,拼接到code上
            char c = data.charAt(index);
            code += c;
        }

        //5.返回验证码code
        return code;
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1904998.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux固定主机ip

1.查看虚拟网络配置 NAT设置&#xff1a; 2.修改网卡配置文件 [rootlocalhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE"Ethernet" PROXY_METHOD"none" BROWSER_ONLY"no" BOOTPROTO"static" DEFROUTE"yes"…

PD虚拟机不能复制Mac的文件怎么回事 PD虚拟机不能复制Mac的文件怎么办 Parallels Desktop怎么用

PD虚拟机不仅能提供跨系统协作的服务&#xff0c;还能进行虚拟机系统与原生系统间的文件共享、文本复制、文件复制等操作&#xff0c;让系统间的资源可以科学利用。但在实际操作过程中&#xff0c;PD虚拟机不能复制Mac的文件怎么回事&#xff1f;PD虚拟机不能复制Mac的文件怎么…

PDM系统中物料分类与编码规则生成方案

在企业管理软件中&#xff0c;PDM系统是企业管理的前端软件&#xff0c;用于管理研发图纸、BOM等数据&#xff0c;然后生成相关物料表或BOM&#xff0c;递交给后端ERP系统进行生产管理。在PDM系统中&#xff0c;有两种方式可以生成物料编码。 1第一种是用户可以通过软件接口将…

Open3D 点云的圆柱形邻域搜索

目录 一、概述 1.1原理 1.2应用 二、代码实现 2.1完整代码 2.2程序说明 三、实现效果 3.1原始点云 3.2搜索后点云 一、概述 1.1原理 圆柱邻域搜索的基本思想是确定点云中的哪些点位于给定圆柱的内部。一个圆柱可以由以下几个参数定义&#xff1a; 中心点&#xff1a;…

RedHat9 | Zabbix-Server监控服务部署

系统版本以及软件版本 使用的系统版本&#xff1a; Red Hat Enterprise Linux release 9.2 软件版本&#xff1a; zabbix-release-7.0-3.el9.noarchzabbix-web-7.0.0-release1.el9.noarchzabbix-web-mysql-7.0.0-release1.el9.noarchzabbix-web-deps-7.0.0-release1.el9.noar…

Vue3+.NET6前后端分离式管理后台实战(二十七)

1&#xff0c;Vue3.NET6前后端分离式管理后台实战(二十七)

C++ 函数高级——函数重载——基本语法

作用&#xff1a;函数名可以相同&#xff0c;提高复用性 函数重载满足条件&#xff1a; 1.同一个作用域下 2.函数名称相同 3.函数参数类型不同 或者 个数不同 或者 顺序不同 注意&#xff1a;函数的返回值不可以作为函数重载的条件 示例&#xff1a; 运行结果&#xff1a;

排序格式排序格式

排序格式排序格式

探讨4层代理和7层代理行为以及如何获取真实客户端IP

准备工作 实验环境 IP角色192.168.1.100客户端请求IP192.168.1.100python 启动的HTTP服务192.168.1.102nginx服务192.168.1.103haproxy 服务 HTTP服务 这是一个简单的HTTP服务&#xff0c;主要打印HTTP报文用于分析客户端IP #!/usr/bin/env python # coding: utf-8import …

【c++刷题笔记-数组】day29:452. 用最少数量的箭引爆气球、 435. 无重叠区间 、 763.划分字母区间

452. 用最少数量的箭引爆气球 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;先按照左边界排序&#xff0c;当前的左边界大于前一个的右边界的时候&#xff0c;表示没有覆盖所以需要一根箭&#xff0c;反之则要更新为最小的右边界 重点&#xff1a;是区间覆盖问题…

FMEA在大型光伏电站安全生产管理中的应用

一、FMEA概述 FMEA&#xff08;Failure Modes and Effects Analysis&#xff09;即失效模式和影响分析&#xff0c;是一种用于识别和分析产品或过程中潜在故障模式及其影响的方法。它通过对产品或过程中可能出现的故障模式进行系统性地梳理和分析&#xff0c;评估其可能的影响…

Day59 动态规划part12

LC115不同的子序列&#xff08;未掌握&#xff09; 递推公式与LC392类似&#xff0c;但是初始化略有不同 LC392的dp数组含义为相同字符个数而本体的dp数组含义为出现的次数&#xff0c;因此dp[i][0]1 两种情况 s[i-1]t[j-1] dp[i][j] dp[i-1][j-1]dp[i][j] dp[i-1][j] s[…

CosyVoice - 阿里最新开源语音克隆、文本转语音项目 支持情感控制及粤语 本地一键整合包下载

近日&#xff0c;阿里通义实验室发布开源语音大模型项目FunAudioLLM&#xff0c;而且一次包含两个模型&#xff1a;SenseVoice和CosyVoice。 CosyVoice专注自然语音生成&#xff0c;支持多语言、音色和情感控制&#xff0c;支持中英日粤韩5种语言的生成&#xff0c;效果显著优于…

JAVA集合框架、CAS、AQS

目录 一、java 的集合框架有哪些? 二、说-下 ArrayList 和 LinkedList? 三、HashSet和TreeSet的区别? 四、HashMap 的数据结构是什么? 五、CAS机制 六、AQS理解 一、java 的集合框架有哪些? Collection 是 Java 集合框架中的一个根接口&#xff0c;位于 java.util 包中。它…

那些年背过的面试题——MySQL篇

本文是技术人面试系列 MySQL 篇&#xff0c;面试中关于 MySQL 都需要了解哪些基础&#xff1f;一文带你详细了解&#xff0c;欢迎收藏&#xff01; WhyMysql&#xff1f; NoSQL 数据库四大家族 列存储 Hbase K-V 存储 Redis 图像存储 Neo4j 文档存储 MongoDB 云存储 OSS …

RabbitMQ中常用的三种交换机【Fanout、Direct、Topic】

目录 1、引入 2、Fanout交换机 案例&#xff1a;利用SpringAMQP演示Fanout交换机的使用 3、Direct交换机 案例&#xff1a;利用SpringAMQP演示Direct交换机的使用 4、Topic交换机 案例&#xff1a;利用SpringAMQP演示Topic交换机的使用 1、引入 真实的生产环境都会经过e…

[240707] X-CMD v0.3.14: cb gh fjo zig 模块增强;新增 lsio 和 pixi 模块

目录 X-CMD 发布 v0.3.14✨ advise&#xff1a;Bash 环境下自动补全时&#xff0c;提供命令的描述信息✨ cb:支持下载指定版本的附件资源✨ gh:支持下载指定版本的附件资源✨ fjo:支持下载指定版本的附件资源✨ zig&#xff1a;新增 pm 和 zon 子命令✨ lsio&#xff1a;用于查…

Maven一键配置阿里云远程仓库,让你的项目依赖飞起来!

文章目录 引言一、为什么选择阿里云Maven仓库&#xff1f;二、如何设置Maven阿里云远程仓库&#xff1f;三、使用阿里云Maven仓库的注意事项总结 引言 在软件开发的世界里&#xff0c;Maven无疑是一个强大的项目管理工具&#xff0c;它能够帮助我们自动化构建、依赖管理和项目…

并发处理 优先图和多重图

优先图(Precedence Graph)视图可串性多重图(Polygraph) 优先图(Precedence Graph) 优先图用于冲突可串性的判断。 优先图结构&#xff1a; 结点 (Node)&#xff1a;事务&#xff1b;有向边 (Arc): Ti → Tj &#xff0c;满足 Ti <s Tj&#xff1b; 存在Ti中的操作A1和Tj…

43、nginx的优化、防盗链、重定向、代理

nginx的优化、防盗链、重定向、代理 一、nginx的优化 1.1、隐藏版本号 server_tokens off;隐藏版本号 [roottest1 conf]# vim nginx.confserver_tokens off;[roottest1 conf]# nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok ngin…