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

news/2024/7/25 2:13:04/文章来源:https://blog.csdn.net/chang_chunhua/article/details/139072527

为什么要学习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.luyixian.cn/news_show_1053130.aspx

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

相关文章

Linux x86_64 UEFI 启动

文章目录 前言一、UEFI二、Disk device compatibility2.1 GPT 磁盘分区表2.1.1 简介2.1.2 Linux 2.2 ESP&#xff08;EFI&#xff09; 文件系统2.2.1 简介2.2.2 LinuxLinux Kernel EFI Boot Stub 三、UEFI GPT grub23.1 简介3.2 引导方式 3.3 BOOTX64.EFI3.4 shimx64.efi3.5 …

Go语言

文章目录 Go语言特点应用领域Go语言和Java语言的对比JavaGo 总结 Go语言安装配置环境变量Hello World Go语言 Go语言全称Golanguage&#xff0c;Go&#xff08;又称 Golang&#xff09;是 Google 的 Robert Griesemer&#xff0c;Rob Pike 及 Ken Thompson 开发的一种静态强类…

CogVLM2: 智谱开源新一代多模态大模型!

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 汇总合集…

三、自定义信号和槽函数(无参和有参)

需求&#xff1a; 下班后&#xff0c;小明说请小红吃好吃的&#xff0c;随便吃&#xff0c;吃啥买啥 无参&#xff1a;小红没有提出吃啥 有参&#xff1a;小红提出自己想吃的东西&#xff0c;吃啥取决于一时兴起&#xff08;emit触发&#xff09; 思路&#xff1a; 1&#xff…

钉钉企业内部H5微应用或小程序之钉消息推送

钉钉简单的推送钉消息 一、钉钉准备工作 首先进入钉钉开放平台 你得有企业内部微应用或者小程序 没有创建的话去看我另一篇文章有说明 钉钉开放平台创建企业内部H5微应用或者小程序-CSDN博客 看不懂话也可以参考官方文档&#xff1a;创建应用 - 钉钉开放平台 二、开发的准备…

微服务项目收获和总结---第5天(定时发布)

延迟任务 目录 延迟任务技术对比&#xff1a; Redis实现定时任务&#xff1a;​编辑新增任务&#xff1a;取消任务&#xff1a;拉取任务&#xff1a;Zset定时刷新数据到List中&#xff1a;分布式锁实现定时任务只刷新一次&#xff1a; 技术对比&#xff1a; Redis实现定时任…

软考数据库系统工程师试题及答案,分享几个实用搜题和学习工具 #媒体#知识分享#知识分享

以下分享的软件提供了各种实用的功能&#xff0c;如数学公式计算、语文阅读辅助等&#xff0c;让大学生们在学习过程中更加高效和便利。 1.众课帮 这是搜题app 一款考试找答案工具 &#xff0c;支持拍照、语音、文字三种搜题方式。拥有海量题库&#xff0c;覆盖了大学生网课…

二零二四充能必读 | 618火热来袭,编程书单助你提升代码力

文章目录 &#x1f4d8; Java领域的经典之作&#x1f40d; Python学习者的宝典&#x1f310; 前端开发者的权威指南&#x1f512; 并发编程的艺术&#x1f916; JVM的深入理解&#x1f3d7; 构建自己的编程语言&#x1f9e0; 编程智慧的结晶&#x1f31f; 代码效率的提升 亲爱的…

Spring系列-02-Bean类型, 作用域, 实例化, 生命周期

Bean类型, 作用域, 实例化, 生命周期 Bean类型 在 SpringFramework 中,对于 Bean 的类型,一般有两种设计: 普通BeanFactoryBean 普通Bean 三种方式 Component注解配置类Beanxml <bean> Component public class Child {}Bean public Child child() {return new Ch…

mars3d实现geojson文件xxx.json格式等实现贴地效果

说明&#xff1a; 1.mars3d.js我们的这个sdk内部参数clampToGround是异步计算贴地效果的&#xff0c;最好的贴地方式是&#xff0c;给json数据准确的带高度的经纬度值。 补充前置知识说明&#xff0c;本身的geojson数据格式每个字段代表的意思需要掌握&#xff0c; GeoJSON …

Java super关键字

super代表父类的引用&#xff0c;用于访问父类的属性、方法和构造器。 1、super的访问不限于直接父类&#xff1a; 若爷爷类和本类有同名的成员&#xff0c;也可以使用super去访问。 若多个上级类都有同名成员&#xff0c;使用super则遵循就近原则。 2、super和this比较&…

弘君资本炒股技巧:股票定向增发是什么意思?是好是坏?

股票定向增发是指已上市的公司向指定的组织或者个人投资者额外发行股份募集资金的融资方法&#xff0c;发行价格为发行前某一阶段的平均价的必定比例&#xff0c;增发的价格不得低于前二十个买卖日股票均价的80&#xff05;。 例如&#xff0c;个股定增前二十个买卖股票平均价为…

Generate Anything Anywhere in Any Scene #论文阅读

URL https://arxiv.org/pdf/2306.17154 TD;DR 2023 年 6 月 Wisconsin 的文章。围绕 ip 保持做的扩展任务&#xff0c;核心目标是对指定 ip 可以生成任意大小的&#xff08;指定 ip&#xff09;、任意背景的图片&#xff0c;同时可以通过 bbox 控制物体位置和多物体生成。主…

外卖系统源码解读:校园外卖APP开发全攻略

外卖系统源码解读&#xff1a;校园外卖APP开发全攻略 今天&#xff0c;小编将深入解读外卖系统的源码&#xff0c;详细介绍如何开发一款功能齐全的校园外卖APP&#xff0c;帮助开发者快速上手&#xff0c;打造出高质量的外卖应用。 一、需求分析 应具备以下基本功能&#xff…

vue中的$nextTick和过渡与动画

一.vue中的$nextTick 简述与用法&#xff1a;这是一个生命周期钩子 1.语法&#xff1a;this.$nextTick(回调函数) 2.作用&#xff1a;在下一次DOM更新结束后执行其指定的回调 3.什么时候用&#xff1a;当修改数据后&#xff0c;要基于更新后的新dom进行某些操作时&#xff0c;…

学习笔记之——2D Gaussian Splatting(2DGS)

3DGS在辐射场重建中取得了巨大的成就&#xff0c;实现高质量的新视图合成和快速渲染。最近新出了3DGS的升级版本&#xff0c;2DGS。写下本博文记录本人学习及测试2DGS的过程&#xff0c;本博文仅为本人学习记录用~ Project WebsiteGithub CodeOriginal paper 原理解读 由于3D…

汽车短视频怎么拍?成都科成博通文化传媒公司

汽车短视频怎么拍&#xff1f; 随着短视频平台的兴起&#xff0c;汽车爱好者们纷纷将自己的汽车生活、驾驶体验以及车辆评测等内容以短视频的形式呈现给大众。汽车短视频不仅满足了观众对汽车文化的好奇心&#xff0c;也为汽车品牌和汽车相关行业提供了宣传和推广的新渠道。那…

【机器学习】机器学习基础概念与初步探索

❀机器学习 &#x1f4d2;1. 引言&#x1f4d2;2. 机器学习概述&#x1f4d2;3. 机器学习基础概念&#x1f389;2.1 机器学习的分类&#x1f389;2.2 数据预处理&#x1f308;数据清洗与整合&#x1f308; 特征选择和特征工程&#x1f308;数据标准化与归一化 &#x1f4d2;4. …

Mesa Gallium框架入门初探

Mesa Gallium框架入门初探 MESA Gallium框架 MESA源码里面有2套架构&#xff0c;现在驱动主要基于Gallium架构。 这里我们重点来看看Gallium架构: 经典架构 Gallium架构 Gallium展开 Gallium中主要包含下面几块&#xff1a; Auxiliary模块&#xff1a;一些公共函数或者辅助…

菜鸟的JavaSE学习之旅5

这是一个目录 面向对象类和对象类对象类的定义一个对象的内存成员变量和局部变量定义位置不同作用范围不同默认值不同内存位置不同生命周期不同 关键字this关键字 构造方法标准的类 面向对象 当需要实现一个功能的时候&#xff0c;不关心具体的步骤&#xff0c;而是找一个具有…