Java入门基础学习笔记44——String

为什么要学习String的处理呢?

开发中,对字符串的处理是非常常见的。

String是什么?可以做什么?

java.lang.String 代表字符串。可以用来创建对象封装字符串数据,并对其进行处理。

1、创建对象

2、封装字符串数据

3、调用String的方法

String创建对象封装字符串数据的方法:

方式一:

Java程序中的所有字符串文字(例如:“abc”)都为此类对象。

String name = "小黑";
String SchoolName = "黑马程序员";

方式二:

调用String类的构造器初始化字符串对象。

new String()创建字符串对象,并调用构造器初始化字符串。

package cn.ensource.string;public class StringDemo {public static void main(String[] args) {String name = "itheima";System.out.println(name);String rs1 = new String();System.out.println(rs1);String rs2 = new String("itheima");System.out.println(rs2);char[] chars = {'a', 'b', 'c'};String rs3 = new String(chars);System.out.println(rs3);byte[] bytes = {100, 101, 102};String rs4 = new String(bytes);System.out.println(rs4);}
}

运行结果:

通过构造函数创建

通过new创建的字符串对象,每一次new都会申请一个空间,虽然内容相同,但是地址值不同。

直接赋值方式创建:

以“”双引号给出的字符串,只要字符串序列相同顺序和大小相同,无论程序代码中出现几次,JVM都只会建立一个String对象,并在字符串池中维护。

String类的常用方法:

String提供的操作字符串数据的常用方法:

为什么是快速熟悉这些方法呢?

API是解决需求的,快速地认识他们,实实在在地解决业务需求。

package cn.ensource.string;public class StringDemo2 {public static void main(String[] args) {// 目标:快速熟悉String提供的处理字符串的方法String s = "黑马Java";// 获取字符串的长度System.out.println(s.length());// 提取字符串中某个索引位置处的字符char c = s.charAt(1);System.out.println(c);// 字符串的遍历for (int i = 0; i < s.length(); i++) {char ch = s.charAt(i);System.out.print(ch);}System.out.println("--------");// 把字符串转成字符数组,然后再进行遍历char[] chars = s.toCharArray();for (int i = 0; i < chars.length; i++) {System.out.print(chars[i]);}System.out.println("--------");// 判断字符串内容,内容一样,就返回trueString s1 = new String("黑马");String s2 = new String("黑马");boolean rs = s.equals(s2);System.out.println(rs);System.out.println("--------");// 忽略大小写比较字符串String c1 = "34Aefg";String c2 = "24aefg";System.out.println(c1.equals(c2));System.out.println(c1.equalsIgnoreCase(c2));System.out.println("--------");// 截取字符串内容String s3 = "Java是最好的编程语言之一";System.out.println(s3.substring(0, 8));System.out.println("--------");// 截取字符串内容,从当前位置到字符串末尾System.out.println(s3.substring(8));System.out.println("--------");// 把字符串的某个内容,替换成新内容String s3c = s3.replace("Java", "C++");System.out.println(s3c);System.out.println("--------");// 判断字符串中是否包含某个关键字String info = "Java是最好的编程语言之一";boolean rs5 = info.contains("Java");System.out.println(rs5);// startwithSystem.out.println("--------");String info2 = "Java是最好的编程语言之一";boolean rs6 = info2.startsWith("Java");System.out.println(rs6);System.out.println("--------");// 分割字符串String str5 = "张无忌,周芷若,殷素素,赵敏";String[] names = str5.split(",");for(int i = 0; i < names.length; i++) {System.out.println(names[i]);}}
}

split这个成员方法,之前在python中也遇到。

如果方法不再记得了,都是可以到API文档中查询的。

另外:

==:

比较基本数据类型:比较具体的值。

比较引用数据类型:比较的是对象地址值。

package com.company;public class Main {public static void main(String[] args) {char[] chs = {'a', 'b', 'c'};String s1 = new String(chs);String s2 = new String(chs);String s3 = "abc";String s4 = "abc";System.out.println(s1 == s2);System.out.println(s1 == s4);System.out.println(s3 == s4);System.out.println("-------------");System.out.println(s1.equals(s2));System.out.println(s1.equals(s3));System.out.println(s3.equals(s4));}
}

运行结果:

false
false
true
-------------
true
true
true

用户登录案例:

import java.util.Scanner;public class Main {public static void main(String[] args) {String username = "changchunhua";String password = "chang@123";for (int i=0; i<3; i++) {Scanner sc =  new Scanner(System.in);System.out.println("Please input username: ");String name = sc.nextLine();System.out.println("Please input password: ");String pwd = sc.nextLine();if (name.equals(username) && pwd.equals(password)) {System.out.println("Sign in susccessfully!");break;} else {if (2 - i == 0) {System.out.println("Your account is locked!");} else {System.out.println("Your has 2 - i times to sign in.");}}}}
}

运行结果: 

Please input username:
chang
Please input password:
chang@123
Your has 2 - i times to sign in.
Please input username:
changchun
Please input password:
chang@123
Your has 2 - i times to sign in.
Please input username:
changchunhua
Please input password:
chang@123
Sign in susccessfully!

字符串反转:

package com.company;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("Please input a string: ");String line = sc.nextLine();String s = reverse(line);System.out.println("s: " + s);}public static String reverse(String s) {String ss = "";for(int i=s.length()-1; i>=0; i--) {ss += s.charAt(i);}return ss;}
}

运行结果:

Please input a string:
changchunhua
s: auhnuhcgnahc

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

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

相关文章

blender 烘焙渲染图片,已经导出fbx,导出贴图。插件生成图片

1.新建一个模型。选择资产浏览器的材质&#xff0c;并拖动到模型身上&#xff0c;如下图。资产浏览器的材质可以网上找。 2.打开着色器面板。正下方着色器窗口中&#xff0c;点击空白取消选择&#xff0c;然后右击-添加-着色器-原理化BSDF&#xff0c;右击-添加-纹理-图像纹理。…

宝塔Linux下安装EMQX服务并设置匿名访问

简述 之前有在Windows和Linux下搭建过EMQX服务并且使用方面都没问题,但那都是使用的用户和密码方式访问,且前提都是通过浏览器进入EMQX的配置页面设置的属性; 但这次使用的是腾讯云租用的宝塔Liniux,由于没有浏览器只能通过命令行方式修改EMQX配置以达到目的;由于事先没看…

【博主推荐】HTML5实现520表白、情人节表白模板源码

文章目录 1.设计来源1.1 表白首页1.2 甜蜜瞬间11.3 甜蜜瞬间21.4 甜蜜瞬间31.5 甜蜜瞬间41.6 甜蜜瞬间51.7 甜蜜瞬间61.8 永久珍藏 2.效果和源码2.1 页面动态效果2.2 页面源代码2.3 源码目录2.4 更多为爱表白源码 3.源码下载地址 作者&#xff1a;xcLeigh 文章地址&#xff1a;…

国内安装Axure RP Extension for Chrome插件

1、到项目的当前目录来 2、后缀改成.rar 3、解压成文件夹 4、拖入chrome中 我这里直接准备好了文件 链接&#xff1a;https://pan.baidu.com/s/1V98tx5LgXZRoKY7XjnIcrA 提取码&#xff1a;gh13

中国上市公司融资约束指数数据上市公司SA指数与WW指数(2000-2023年)

上市公司融资约束指数&#xff0c;是用来评估公司面临的融资限制程度的工具。SA指数由Hadlock和Pierce开发&#xff0c;基于公司规模和年龄计算&#xff0c;其中较小且较年轻的公司通常会有更高的指数值&#xff0c;表明其融资约束较大。另一方面&#xff0c;WW指数由Whited和W…

【静态分析】在springboot使用太阿(Tai-e)03

参考&#xff1a;使用太阿&#xff08;Tai-e&#xff09;进行静态代码安全分析&#xff08;spring-boot篇三&#xff09; - 先知社区 1. JavaApi 提取 1.1 分析 预期是提取controller提供的对外API&#xff0c;例如下图中的/sqli/jdbc/vuln 先看一下如何用tai-e去获取router…

浅谈分布式系统

目录 一、单机架构二、分布式架构1、应用服务与数据库分离2、负载均衡3、数据库读写分离4、引入缓存5、数据库分库分表6、引入微服务 一、单机架构 单机架构&#xff0c;只有一台服务器&#xff0c;这个服务器负责所有工作。 绝大多数公司的产品&#xff0c;都是这种单机架构。…

[论文笔记]REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS

引言 今天带来一篇经典论文REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS的阅读笔记&#xff0c;论文中文意思是 在语言模型中协同推理和行动。 虽然大型语言模型(LLMs)在语言理解和互动决策任务中展现出强大的能力&#xff0c;但它们在推理(例如思维链提示)和…

画图工具之PlantUML插件使用

文章目录 1 PlantUML插件1.1 引言1.2 什么是PlantUML1.3 PlantUML插件1.3.1 IntelliJ IDEA中插件1.3.2 VS Code中插件1.3.3 使用例子 1.4 PlantUML时序图语法1.4.1 声明参与者1.4.2 消息传递1.4.2.1 同步消息1.4.2.2 异步消息1.4.2.3 返回消息1.4.2.4 自调用 1.4.3 生命线&…

【大模型】fineturn Q-wen

github上下载qwen1_5源码 修改finetun.sh 然后在路径qwen1_5/examples/sft下修改finetun.sh, 内容如下 #!/bin/bash export CUDA_DEVICE_MAX_CONNECTIONS1 DIRpwd# Guide: # This script supports distributed training on multi-gpu workers (as well as single-worker trai…

Leetcode刷题2

文章目录 前言寻找两个正序数组的中位数1️⃣ 双指针快速排序2️⃣ 第k小数解法 Z 字形变换1️⃣ 个人解法2️⃣巧妙解法13️⃣巧妙解法2 字符串转换整数 (atoi)1️⃣ 常规方法2️⃣ 作弊方法&#x1f62b; 整数转罗马数字1️⃣ 常规方法&#xff1a;按照给定规则写出判断条件即…

WSL调用docker

WSL&#xff08;windows subsystem linux&#xff09;是window系统的原生linux子系统&#xff0c;用于代码开发很方便。 希望在wsl里面运行docker&#xff0c;首先要安装docker在WSL中使用&#xff0c;大部分人的第一想法肯定是用以下命令行安装&#xff08;个人不推荐&#x…

java的unsafe

在Java中&#xff0c;sun.misc.Unsafe 是一个强大且危险的类&#xff0c;它提供了一些直接操作内存、对象和线程的底层功能。这个类通常不鼓励普通开发者使用&#xff0c;因为它绕过了Java语言的一些安全性和内存管理机制&#xff0c;可能会导致难以追踪的错误和安全漏洞。 Un…

2.go环境配置与开发工具选择

go 环境配置 下载安装包 官网(https://go.dev/dl/) 下载地址(国内)(https://golang.google.cn/dl/) 根据自己的操作系统选择下载即可 下载后安装 记住地址 比如&#xff1a; D:\work\devtool\go 配置系统环境变量 PATH 指向 go 的安装 bin 目录 比如&#xff1a; D:\work…

若依前端vue实现 输入框下拉选择加搜索用户

探索代码以及详细的注解 <template><div><el-select v-model"selectedUserId" filterable placeholder"选择用户" change"handleChange"><el-optionv-for"user in filteredUsers":key"user.userId":l…

集合框框框地架

这一次来介绍一下常用的集合&#xff1a; 首先是两种集合的《家庭系谱图》&#xff1a; 接下来介绍一下集合的种类&#xff1a; Collection Set SetTreeSet&#xff1a;基于红⿊树实现&#xff0c;⽀持有序性操作&#xff0c;例如&#xff1a;根据⼀个范围查找元素的操作。但…

Unity实现TableView

基于Scrollview封装的TableView&#xff0c;实现对视野外的Cell回收利用&#xff0c;减少创建Cell的开销。 核心逻辑如下&#xff1a; /***************************************动态使用cell核心逻辑开始 **************************************///计算所有cell的坐标信息 …

利用java8 的 CompletableFuture 优化 Flink 程序,性能提升 50%

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…

AI图书推荐:用100个ChatGPT提示词掌握Python编程

《用100个ChatGPT提示词掌握Python编程》&#xff08;ChatGPT:Your Python Coach Mastering the Essentials in 100 Prompts&#xff09; 塞尔吉奥罗哈斯-加莱亚诺&#xff08;Sergio Rojas-Galeano&#xff09;是一位热情的计算机科学家&#xff0c;对人工智能、机器学习、进化…

C++中获取int最大与最小值(补)

上文中&#xff0c;我们学习了C中获取int最大与最小值的两种方法&#xff1a;C库和移位运算&#xff0c;这篇文章将解决在移位运算中遇到的各种报错&#xff0c;并提出一种新的生成int最值的方法 上文链接&#xff1a;http://t.csdnimg.cn/cn7Ad 移位运算取最值常见报错 Dev…