当前位置: 首页 > news >正文

Java学习笔记——字符/字符串

在  Java 语言中,字符串都被设计成「不可变」的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串实现

StringBuilder

字符

字符是用单引号括起来的单个字母,在Java中,表示字符的数据类型为char。一个字符在内存中占16位大小的空间(2个字节)。在编写程序的多数时候,使用字符值,通常会使用原始的char类型。例如:

char ch ='a';                            //创建一个名为ch的字符并赋值
char uniChar='\u039a';                   //创建大写的希腊omega字符的Unicode编码
char [] charArray={'h','e','l','l','o'}; //创建一个字符的数组charArray并赋值
char sex='男';                            //创建一个名为sex的字符并赋值

Character类

在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情况。为了解决这个问题,Java语言为内置数据类型char提供了包装类Character类,提供了一个“包装(wrapper)器”类,用来将char类型的字符“包装”为一个Character对象。可以使用Character构造器创建一个Character对象,例如:

Character sex=new Character('男');

Java编译器会根据需要自动创建一个Character对象。将一个char类型的参数传递给需要一个Character类型参数的方法时,那么编译器会自动地将char类型参数转换为Character对象。 这种特征称为装箱,反过来称为拆箱

Character ch = 'a';    // 原始字符 'a' 装箱到 Character 对象 ch 中
char c= test('x');     //原始的'x'被装箱用于方法test,返回值被拆箱为字符'c'

字符串

字符串(String)是用一对双引号括起来的零个或多个字符组成的有限序列。在Java中,字符串被当作对象来处理。

程序中需要用到的字符串可以分为两大类:

String类:创建之后不会再做修改和变动的字符串常量;
StringBuffer类:创建之后允许再做更改和变化的字符串变量。
串的两种最基本的存储方式是顺序存储方式和链接存储方式。

String类字符串

字符串变量必须赋值后才可以使用,这称为字符串对象初始化。

字符串的创建和赋值的方式有三种:

String 字符串变量名;
字符串变量名="字符串常量";
String username="";
username="Tom"或者String 字符串变量名="字符串常量";
String SayHello="Hello world";或者String studentName=new String("周杰杰");

String对象的创建:

1、利用构造器:

String s=new String("Hello world");

2、直接创建:

String s="Hello world";

   代码1中局部变量sa,sb中存储的是JVM在堆中new出来的两个String对象的内存地址。虽然这两个String对象的值(char[]存放的字符序列)都是"Hello world"。 因此"=="比较的是两个不同的堆地址。代码2中局部变量sc,sd中存储的也是地址,但却都是常量池中"Hello world"指向的堆的唯一的那个拘留字符串对象的地址 。自然相等了。

//代码1  
String sa=new String("Hello world");            
String sb=new String("Hello world");      
System.out.println(sa==sb);  // false       
//代码2    
String sc="Hello world";    
String sd="Hello world";  
System.out.println(sc==sd);  // true   

字符数组转换为字符串

public class myfirst {public static void main(String[] args) {char []helloArray= {'h','e','l','l','o'};   //声明一个字符数组String helloString=new String(helloArray);  //将字符数组作为构造函数的参数System.out.println(helloString);}
}

字符串转换为字符数组

public class myfirst {public static void main(String[] args) {String helloString ="hello";        //声明一个字符串变量并赋值char []helloArray=helloString.toCharArray(); //进行字符串和字符数组的转换for(int i=0;i<helloArray.length;i++) {       //for循环输出字符数组System.out.print(helloArray[i]+" ");}}
}

相关文章:

Java学习笔记——字符/字符串

在 Java 语言中&#xff0c;字符串都被设计成「不可变」的类型&#xff0c;即无法直接修改字符串的某一位字符&#xff0c;需要新建一个字符串实现 StringBuilder 字符 字符是用单引号括起来的单个字母&#xff0c;在Java中&#xff0c;表示字符的数据类型为char。一个字符…...

数据结构与算法基础-(1)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…...

华为云云耀云服务器L实例评测|轻量级应用服务器对决:基于 STREAM 深度测评华为云云耀云服务器L实例的内存性能

本文收录在专栏&#xff1a;#云计算入门与实践 - 华为云 专栏中&#xff0c;本系列博文还在更新中 相关华为云云耀云服务器L实例评测文章列表如下&#xff1a; 华为云云耀云服务器L实例评测 | 从零开始&#xff1a;云耀云服务器L实例的全面使用解析指南华为云云耀云服务器L实…...

Windows安装Neo4j

图数据库概述 图数据库是基于图论实现的一种NoSQL数据库&#xff0c;其数据存储结构和数据查询方式都是以图论&#xff08;它以图为研究对象图论中的图是由若干给定的点及连接两点的线所构成的图形&#xff09;为基础的&#xff0c; 图数据库主要用于存储更多的连接数据。 Neo…...

vue3开发必备核心要点

1、route/router的区别 ● $route 表示当前激活的路由的状态信息&#xff0c;包含了当前URL解析得到的信息&#xff0c;包含当前的path路径&#xff0c;params参数&#xff0c;query对象&#xff0c;name路径名等属性 ● r o u t e r 路由器对象&#xff08; n e w 的路由器对…...

针对敏感数据的安全转录服务

即便在新冠肺炎疫情期间&#xff0c;继续保持了最高级别的机密性 新冠肺炎疫情带来的各种限制向所有服务提供商提出了挑战&#xff0c;促使提供商们想方设法采取更富想象力的新方法来满足客户的需求。澳鹏采用了一种由两种方案组成的工作机制&#xff0c;服务于客户机密材料的…...

leetcode 10. 正则表达式匹配

2023.9.20 感觉是目前做过dp题里最难的一题了... 本题首要的就是需要理解题意&#xff0c;翻了评论区我才发现之前一直理解的题意是错的。 我原来理解的 “ *匹配0次” 是指&#xff1a;*直接消失&#xff0c;不会影响到前面的字符。 但是*和前一个字符其实是连体的&#xff0…...

Vue前端开发中的输入限制与输入规则探究

前言 在Vue前端开发中&#xff0c;我们经常需要对用户的输入进行限制和规范&#xff0c;以确保数据的准确性和安全性。本文将介绍如何使用Vue的el-input组件来实现输入限制和输入规则&#xff0c;并提供相应的代码示例。 一、输入限制 最大长度限制 我们可以使用maxlength属…...

自己封装 vue3+ts 组件库并且发布到 NPM

自己封装 vue3ts 组件库并且发布到 NPM 创建项目 pnpm create vite配置 package.json 按照提示创建好项目&#xff0c;然后再 package.json 中进行如下配置&#xff1a; {"name": "tribiani-vue-tools","private": false,"version"…...

MySQL学习系列(6)-每天学习10个知识

目录 1. 管理和维护大量的数据库表和数据2. 检测和修复MySQL性能瓶颈3. MySQL的视图缓存4. 处理MySQL并发问题5. 函数索引和全文索引6. UNION ALL 和 UNION 的区别7. 存储引擎的选择8. 存储过程和触发器9. 数据表管理和优化10. 数据库安全性和一致性 &#x1f44d; 点赞&#x…...

“毛细血管”的进化:华为分销业务如何让伙伴也有“高能级”

作者 | 曾响铃 文 | 响铃说 数字化蓬勃发展的大时代&#xff0c;除了那些中、大型企业&#xff0c;数量更为庞大的小微企业同样有借助数字化产品、服务来提升企业经营的需求&#xff0c;由此也带来了广袤的数字化分销市场。 这里处在聚光灯之外&#xff0c;很少被数字化时代…...

警惕!多本SCI/SSCI被剔除,9月SCI/SSCI期刊目录已更新~(附下载)

【SciencePub学术】 2023年9月20日&#xff0c;科睿唯安更新了Web of Science核心期刊目录。 继上次SCI期刊目录和SSCI期刊目录更新之后&#xff0c;本次9月更新共有9本期刊发生变动&#xff1a; • SCIE&#xff1a;有3本期刊不再被SCIE期刊目录收录(Editorial De-listing/Pr…...

一点整理

&#xff08;1&#xff09; 美国在2010年以后开始流行数字化转型的。 在2010年以前&#xff0c; 2006年社交网络FB “YOU”&#xff1a;在2004-2006 Web2.0热之前&#xff0c;企业是无法直接触达到每个消费者的2006年Amazon电子商务&#xff1a;这个是我瞎凑的&#xff0c;但因…...

Vulnhub系列靶机---Deathnote: 1死亡笔记

文章目录 信息收集主机发现端口扫描目录扫描dirsearchgobusterdirb扫描 漏洞利用wpscan扫描Hydra爆破 总结 靶机文档&#xff1a;Deathnote: 1 下载地址&#xff1a;Download (Mirror) 难易程度&#xff1a;so Easy 信息收集 主机发现 端口扫描 访问靶机的80端口&#xff0c;报…...

从基础到高阶:史上最小白的Attention机制详解——揭秘人工智能中的核心技术

1. Encoder-Decoder 想象一下你正在和一个会说多种语言的朋友对话。你用中文对他说了一句话&#xff0c;他将其“编码”成他的“内部语言”&#xff0c;然后再“解码”成英语给你回复。在这个过程中&#xff0c;“编码”就是Encoder&#xff0c;而“解码”就是Decoder。 在机…...

9.20金融科技(比特币)

​ 比特币的起源和发展 2008年爆发全球金融危机&#xff0c;同年11月1日&#xff0c;一个自称中本聪&#xff08;Satoshi Nakamoto&#xff09;的人在P2P foundation网站上发布了比特币白皮书《比特币&#xff1a;一种点对点的电子现金系 &#xff0c;陈述了他对电子货币的新设…...

什么是内存碎片?

在嵌入式系统中&#xff0c;内存是十分有限而且是十分珍贵的&#xff0c;用一块内存就少了一块内存&#xff0c;而在分配中随着内存不断被分配和释放&#xff0c;整个系统内存区域会产生越来越多的碎片。 因为在使用过程中&#xff0c;申请了一些内存&#xff0c;其中一些释放…...

C语言堆排序

堆排序&#xff08;Heapsort&#xff09;是一种在时间复杂度上达到了最优的基于比较的排序算法。堆排序算法是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构&#xff0c;并同时满足堆积的性质&#xff1a;即子节点的键值或索引总是小于&#xff0…...

【学习笔记】CF573E Bear and Bowling

感觉贪心的做法比较自然&#x1f914;&#xff0c;推荐 这篇博客 非常经典牛逼的贪心思路&#xff1a; 考虑每次加入一个数&#xff0c;位置 i i i的贡献为 V i k i a i b i V_ik_i\times a_ib_i Vi​ki​ai​bi​&#xff0c;其中 k i k_i ki​表示 i i i以前被选的位置的…...

函数扩展之——内存函数

前言&#xff1a;小伙伴们又见面啦。 本篇文章&#xff0c;我们将讲解C语言中比较重要且常用的内存函数&#xff0c;并尝试模拟实现它们的功能。 让我们一起来学习叭。 目录 一.什么是内存函数 二.内存函数有哪些 1.memcpy &#xff08;1&#xff09;库函数memcpy &…...

从YOLOv8到Heatmap:手把手教你搭建一个景区人员拥挤预警系统(含完整代码)

从YOLOv8到Heatmap&#xff1a;手把手教你搭建一个景区人员拥挤预警系统&#xff08;含完整代码&#xff09; 每到旅游旺季&#xff0c;景区管理者最头疼的问题之一就是如何有效监控人流密度&#xff0c;预防踩踏事故。传统的人工监控方式不仅效率低下&#xff0c;而且难以及时…...

ONLYOFFICE集成踩坑实录:90%的“内容丢失”和“版本已更新”都因为document.key用错了

在集成OnlyOffice DocumentServer的过程中&#xff0c;很多开发者都会遇到两个非常典型的问题&#xff1a; 多人协同编辑后&#xff0c;再次打开文档发现内容缺失重新打开文档时提示“文档版本已更新” 很多人会认为&#xff1a; 是 ONLYOFFICE 不稳定是缓存机制异常是协同编…...

从零构建生产级AI助手:OpenClaw配置实战与自动化工作流指南

1. 项目概述&#xff1a;从零到一&#xff0c;构建你的生产级AI助手工作空间如果你和我一样&#xff0c;已经厌倦了每次配置AI助手时&#xff0c;都要从零开始摸索各种配置文件、脚本和最佳实践&#xff0c;那么这个名为openclaw-config的项目&#xff0c;绝对是你梦寐以求的“…...

如何通过LizzieYzy围棋AI分析工具在30天内实现棋力突破:从入门到实战的完整指南

如何通过LizzieYzy围棋AI分析工具在30天内实现棋力突破&#xff1a;从入门到实战的完整指南 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy 在围棋AI技术飞速发展的今天&#xff0c;LizzieYzy作为一…...

手把手复现经典:用Python和NumPy实现Laplacian曲面编辑的核心算法(附代码与避坑指南)

手把手复现经典&#xff1a;用Python和NumPy实现Laplacian曲面编辑的核心算法&#xff08;附代码与避坑指南&#xff09; 在三维图形处理领域&#xff0c;Laplacian曲面编辑技术因其直观的交互方式和稳定的变形效果&#xff0c;成为建模工具中的常青树。本文将带您从零开始&…...

ElevenLabs声音库资源推荐,从免费层到企业级Tier 4权限全解锁:含3个已下架但仍在灰度测试的传奇音色

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs声音库资源推荐 ElevenLabs 提供了业界领先的高质量语音合成服务&#xff0c;其声音库涵盖多语种、多风格及可定制化角色音色。官方声音库分为三类&#xff1a;预置语音&#xff08;Prebuilt…...

对比官方价格Taotoken的活动价确实带来了可观节省

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比官方价格&#xff0c;Taotoken的活动价确实带来了可观节省 作为一名长期使用多个大模型API进行项目开发的个人开发者&#xff…...

WandEnhancer终极指南:3步解锁完整WeMod高级功能

WandEnhancer终极指南&#xff1a;3步解锁完整WeMod高级功能 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod高级功能付费而烦恼吗&#xff…...

从SRResNet到实战:基于Pytorch的图像超分辨率重建全流程解析

1. 图像超分辨率重建基础入门 第一次接触图像超分辨率技术时&#xff0c;我被它的魔法般的效果震撼到了。简单来说&#xff0c;这项技术就是让模糊的老照片变清晰&#xff0c;让低分辨率的监控画面呈现更多细节。在实际项目中&#xff0c;我经常遇到客户拿着十几年前的老照片希…...

PyTorch实战:如何正确保存训练检查点(checkpoint)以实现断点续训和模型部署

PyTorch实战&#xff1a;工程化视角下的训练检查点管理与模型部署全流程 在深度学习项目的实际开发中&#xff0c;模型训练往往需要数小时甚至数天时间。突然的断电、服务器故障或人为中断都可能导致训练进度丢失。更糟糕的是&#xff0c;当需要将训练好的模型部署到生产环境时…...