java基础--String字符串对象

一.掌握创建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.mfbz.cn/a/778204.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SSM贫困生申请管理系统-计算机毕业设计源码84308

摘要 随着教育信息化的不断推进&#xff0c;越来越多的高校开始借助信息技术手段提升贫困生申请管理的效率与准确性。为此&#xff0c;我们设计并实现了SSM贫困生申请管理系统&#xff0c;旨在通过信息化手段优化贫困生申请流程&#xff0c;提高管理效率&#xff0c;为贫困生提…

IDEA越用越卡?教你轻松解决IDEA内存占用过高问题

大家好&#xff0c;我是瑶山&#xff0c;最近IDEA越用越卡了&#xff0c;刚刚内存卡爆&#xff0c;带着整个电脑也卡的飞起&#xff0c;只能重启了电脑。 虽然重启后又恢复到了流畅&#xff0c;但是问题还是如鲠在喉&#xff0c;痛定思痛&#xff0c;还是决定处理下&#xff01…

【话题】AI是在帮助开发者还是取代他们

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读小5的系列文章&#xff0c;这是《话题》系列文章 目录 引言AI在代码生成中的应用AI在错误检测和自动化测试中的作用对开发者职业前景的影响技能需求的变化与适应策略结论文章推荐 引言 随着人工智能&#xff08;AI&#xff…

《第一行代码》小结

文章目录 一. Android总览1. 系统架构2. 开发环境3. 在红米手机上运行4. 项目资源详解4.1 整体结构4.2 res文件4.3 build.gradle文件 二. Activity0. 常用方法小结1. 创建一个Activity 一. Android总览 1. 系统架构 应用层&#xff1a;所有安装在手机上的应用程序 应用框架层&…

恢复出厂设置手机变成砖

上周&#xff0c;许多Google Pixel 6&#xff08;6、6a、6 Pro&#xff09;手机用户在恢复出厂设置后都面临着设备冻结的问题。 用户说他们在下载过程中遇到了丢失 tune2fs 文件的错误 。 这会导致屏幕显示以下消息&#xff1a;“Android 系统无法启动。您的数据可能会被损坏…

Python学习笔记30:进阶篇(十九)pygame的使用之显示与窗口管理

前言 基础模块的知识通过这么长时间的学习已经有所了解&#xff0c;更加深入的话需要通过完成各种项目&#xff0c;在这个过程中逐渐学习&#xff0c;成长。 我们的下一步目标是完成python crash course中的外星人入侵项目&#xff0c;这是一个2D游戏项目。在这之前&#xff…

[Labview] Excel读表 输出表单中选中的单元格内容

简而言之 循环外 是读取excel文件&#xff0c;并写入labview表格 循环内 会输出表格中被选中的单元格内容 属性节点&#xff1a;编辑位置 如果需要改写单元格内容并储存替换Excel&#xff0c;可见这篇&#xff1a;[Labview] 改写表格内容并储存覆盖Excelhttps://blog.csdn.ne…

tongweb 部署软航流版签一体化应用示例 提示跨域错误CORS ERROR

目录 问题现象与描述 解决办法 原理解析 什么是CORS 浏览器跨域请求限制 跨域问题解决方法 跨域请求流程 浏览器请求分类解析 http请求方法简介 问题现象与描述 重庆软航科技有限公司提供了一套针对针对word、excel等流式文件转换成PDF版式文件并进行版式文件在线签章…

【虚幻引擎】UE4初学者系列教程开发进阶实战篇——生存游戏案例

一、课程体系 1 学前必读 2 Character类相关基础 -人物移动控制 -动画蓝图 3 常见游戏机制基础 -碰撞器、触发器 -物体使用接口 -视角切换 4其他相关设计 -背包系统 -锻造系统 -物体破碎效果 -简易种植系统 -互动物体动画 5课程结语 二、UI部分 思维导图部分 实操部分 …

Matplotlib Artist Axes

在简介里介绍了很多了&#xff0c;这里补充一点 Axes包含一个属性patch&#xff0c;是Axes对应的方框&#xff0c;可以用来设置Axes的相关属性 ax fig.add_subplot() rect ax.patch # a Rectangle instance rect.set_facecolor(green) Axes有以下方法 Axes helper metho…

第15章 奇异值分解:习题解答及其案例

这一章初学建议看该视频学习&#xff0c;讲得歪瑞古德&#xff1a; 《统计学习方法》李航 第15章奇异值分解 1.矩阵的奇异值分解是指将 m n m \times n mn实矩阵 A A A表示为以下三个实矩阵乘积形式的运算 A U Σ V T A U \Sigma V ^ { T } AUΣVT 其中 U U U是 m m m阶正…

第9章 项目总结01:项目流程,每个模块的介绍

1 请介绍一下你的项目 学成在线项目是一个B2B2C的在线教育平台&#xff0c;本项目包括了用户端、机构端、运营端。 核心模块包括&#xff1a;内容管理、媒资管理、课程搜索、订单支付、选课管理、认证授权等。 下图是项目的功能模块图&#xff1a; 项目采用前后端分离的技…

软件测试与开发流程

软件测试简介 软件测试是对软件进行检测和评估&#xff0c;以确定其是否满足所需结果的过程和方法。它是在规定的条件下对程序进行操作&#xff0c;发现程序错误&#xff0c;从而衡量软件质量&#xff0c;并对其是否满足设计要求进行评估的过程。 与计算机系统操作有关的计算机…

生物化学笔记:电阻抗基础+电化学阻抗谱EIS+电化学系统频率响应分析

视频教程地址 引言 方法介绍 稳定&#xff1a;撤去扰动会到原始状态&#xff0c;反之不稳定&#xff0c;还有近似稳定的 阻抗谱图形&#xff08;Nyquist和Bode图&#xff09; 阻抗谱图形是用于分析电化学系统和材料的工具&#xff0c;主要有两种类型&#xff1a;Nyquist图和B…

跟《经济学人》学英文:2024年06月01日这期 The side-effects of the TikTok tussle

The side-effects of the TikTok tussle tussle&#xff1a;美 [ˈtəsəl] 激烈扭打&#xff1b;争夺 注意发音 side-effects&#xff1a;副作用&#xff1b;&#xff08;side-effect的复数&#xff09; As the app’s future hangs in the balance, the ramifications of …

2024年中国十大杰出起名大师排行榜,最厉害的易经姓名学改名字专家

在2024年揭晓的中国十大杰出易学泰斗评选中&#xff0c;一系列对姓名学与国学易经有深入研究的专家荣登榜单。其中&#xff0c;中国十大权威姓名学专家泰斗顶级杰出代表人物的师傅颜廷利大师以其在国际舞台上的卓越贡献和深邃学识&#xff0c;被公认为姓名学及易经起名领域的权…

关于linux服务器更改镜像后连接不上vscode问题

问题样子解决办法直接看 问题样子 问题描述&#xff1a;从centos换到ubantu后&#xff0c;xshell能直接连接上&#xff08;没有更改ssh配置信息&#xff09;&#xff0c;但是vscode连不上&#xff08;配置文件因为端口号和ip是一样的&#xff0c;也没法改&#xff09; 猜测…

SwinUnet详解

文章目录 摘要一. 编码端模块1. PatchEmbed2. SwinTransformerBlock2.1. Window_partition2.2. WindowAttention2.3. Window_reverse2.4. MLP 3. PatchMerging 二. 解码端模块三. 完整流程图 摘要 swinunet基本结构&#xff1a; swinunet采用编码器-解码器结构&#xff1a; 编…

vulnhub靶场之Jarbas

1 信息收集 1.1 主机发现 arp-scan -l 发现主机IP地址为&#xff1a;192.168.1.16 1.2 端口发现 nmap -sS -sV -A -T5 -p- 192.168.1.16 存在端口22&#xff0c;80&#xff0c;3306&#xff0c;8080 1.3 目录扫描 dirsearch -u 192.168.1.16 2 端口访问 2.1 80端口 2.2…

[单master节点k8s部署]20.监控系统构建(五)Alertmanager

prometheus将监控到的异常事件发送给Alertmanager&#xff0c;然后Alertmanager将报警信息发送到邮箱等设备。可以从下图看出&#xff0c;push alerts是由Prometheus发起的。 安装Alertmanager config文件 [rootmaster prometheus]# cat alertmanager-cm.yaml kind: ConfigMa…