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

《从C/C++到Java入门指南》- 9.字符和字符串

字符和字符串

字符类型

Java 中一个字符保存一个Unicode字符,所以一个中文和一个英文字母都占用两个字节。

// 计算1 + .. + 100
public class Hello {public static void main(String[] args) {char a = 'A';char b = '中';System.out.println(a);System.out.println(b);		}
}

需要显示 Unicode 编码,可以直接将char值赋给int类型。

// 计算1 + .. + 100
public class Hello {public static void main(String[] args) {char a = 'A';char b = '中';System.out.println((int) a);	// 65System.out.println((int) b);	// 20013}
}

可以用'\u'+Unicode编码转义成字符

// 计算1 + .. + 100
public class Hello {public static void main(String[] args) {char a = 'A';char b = '中';char c = '\u0041';	// 使用\u + Unicode 来进行转义,这里0041是16进制 = 十进制65System.out.println((int) a);System.out.println((int) b);	System.out.println(c);	// A}
}

字符串类型

一个字符串可以存储一个到任意个字符,字符串用"..."来进行表示,类似c++。可以使用\来表示转义字符,如\"就可以用来表示"

  • \" 表示字符"
  • \' 表示字符'
  • \\ 表示字符\
  • \n 表示换行符
  • \r 表示回车符
  • \t 表示Tab
  • \u#### 表示一个Unicode编码的字符
// 计算1 + .. + 100
public class Hello {public static void main(String[] args) {String str = "\"-\'=\',反斜杠:\\\\来表示\n换行输出,回车符:\r好的\t经过了一个Tab\u0024";System.out.println(str);}
}

输出结果:

image-20240717194813432

字符串连接

可以用+来连接字符串和其他的任意类型,但是会将所有的类型先转化成字符串类型,并不会中途进行运算。

// 计算1 + .. + 100
public class Hello {public static void main(String[] args) {String a = "a";String b = "b";String plus = a + b;System.out.println(a + b + plus + '3' + 1.0 + 2f + 4 + true);}
}

输出结果:

image-20240717195147877

多行字符串

Java 13开始,可以用 """..."""来表示多行字符串:

// 计算1 + .. + 100
public class Hello {public static void main(String[] args) {String mutiple_line_string = """窗前明月光,疑似地上霜。举头望明月,低头思故乡。""";System.out.println(mutiple_line_string);}
}

输出结果:

image-20240717195418139

这里实际上是三行,因为最后还有一个\n,如果不需要这个换行符,将'''移动到低头思故乡。的后面即可:

// 计算1 + .. + 100
public class Hello {public static void main(String[] args) {String mutiple_line_string = """窗前明月光,疑似地上霜。举头望明月,低头思故乡。""";System.out.println(mutiple_line_string);}
}

有一点需要注意的就是,多行字符串前面共同的空格都会被忽略。

image-20240717195641441

图片来自:廖雪峰的官网

不可变特性

java 中的字符串在创建的过程中经过了如下过程:首先,JVM虚拟机在内存中创建了一个字符串,并让指针指向这个字符串。所以在为字符串变量赋新的值的时候,只是将这个变量指向了内存中新的字符串,原来的字符串还会保留在那里。

// 计算1 + .. + 100
public class Hello {public static void main(String[] args) {String a = "Hello";String b = a;a = "World";System.out.println(a);	// WorldSystem.out.println(b);	// b 仍然指向 Hello}
}

参考廖雪峰的图:

image-20240717200156317

image-20240717200203756

空值 null

引用对象可以指向一个null表示变量不存在,不指向任何对象。但是请注意,null不等于"“,”" 代表空字符串,是一个有效的字符串。

public class Hello {public static void main(String[] args) {String a = null;String b = null;String c = "";System.out.println(a == b);	// trueSystem.out.println(a == c);	// false}
}

练习

用 int 值存储 Unicode 编码,并将它们拼成一个字符串。

答案

public class Hello {public static void main(String[] args) {int a = 72;int b = 105;int c = 65281;// FIXME:String s = "" + (char) a + (char) b + (char) c;System.out.println(s);}
}

廖雪峰的答案中String s = a + b + c ,在我这里是报错的,不确定是否是因为我是Java8的原因。

相关文章:

《从C/C++到Java入门指南》- 9.字符和字符串

字符和字符串 字符类型 Java 中一个字符保存一个Unicode字符,所以一个中文和一个英文字母都占用两个字节。 // 计算1 .. 100 public class Hello {public static void main(String[] args) {char a A;char b 中;System.out.println(a);System.out.println(b)…...

Adobe国际认证详解-视频剪辑

在数字化时代,视频剪辑已成为创意表达和视觉传播的重要手段。随着技术的不断进步,熟练掌握视频剪辑技能的专业人才需求日益增长。在这个背景下,Adobe国际认证应运而生,成为全球创意设计领域的重要标杆。 Adobe国际认证是由Adobe公…...

昇思25天学习打卡营第19天|MindNLP ChatGLM-6B StreamChat

文章目录 昇思MindSpore应用实践ChatGML-6B简介基于MindNLP的ChatGLM-6B StreamChat Reference 昇思MindSpore应用实践 本系列文章主要用于记录昇思25天学习打卡营的学习心得。 ChatGML-6B简介 ChatGLM-6B 是由清华大学和智谱AI联合研发的产品,是一个开源的、支持…...

.NET在游戏开发中有哪些成功的案例?

简述 在游戏开发的多彩世界中,技术的选择往往决定了作品的成败。.NET技术,以其跨平台的性能和强大的开发生态,逐渐成为游戏开发者的新宠。本文将带您探索那些利用.NET技术打造出的著名游戏案例,领略.NET在游戏开发中的卓越表现。 …...

搜维尔科技:我们用xsens完成了一系列高难度的运动项目并且捕获动作

我们用xsens完成了一系列高难度的运动项目并且捕获动作 搜维尔科技:我们用xsens完成了一系列高难度的运动项目并且捕获动作...

深入探讨:Node.js、Vue、SSH服务与SSH免密登录

在这篇博客中,我们将深入探讨如何在项目中使用Node.js和Vue,并配置SSH服务以及实现SSH免密登录。我们会一步步地进行讲解,并提供代码示例,确保你能轻松上手。 一、Node.js 与 Vue 的结合 1.1 Node.js 简介 Node.js 是一个基于 …...

Unity UGUI 之 Toggle

​本文仅作学习笔记与交流,不作任何商业用途本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正​ 1.什么是Toggle? Unity - Manual: Toggle 带复选框的开关,可…...

Git报错:error: fsmonitor--daemon failed to start处理方法

问题描述 git用了很久了,但是后面突然发现执行命令时,后面都会出现这个报错,虽然该报错好像不会影响正常的命令逻辑,但是还是感觉有天烦人,就去找了找资料。 $ git status error: fsmonitor--daemon failed to start…...

【项目】星辰博客介绍

目录 一、项目背景 二、项目功能 1. 登录功能: 2. 列表页面: 3. 详情页面: 4. 写博客: 三、技术实现 四、功能页面展示 1. 用户登录 2. 博客列表页 3. 博客编辑更新页 4.博客发表页 5. 博客详情页 五.系统亮点 1.强…...

从0开始的STM32HAL库学习6

外部时钟源选择 配置环境 选择TIM2 配置红色框图中的各种配置 时钟源选择外部时钟 2 1. 预分频器 Prescaler ,下面填0,不分频 2. 计数模式 CounterModer ,计数模式选择为向上计数 3. 自动重装寄存器 CouterPeriod ,自动重…...

Elasticsearch ILM 热节点迁移至冷节点 IO 打满、影响读写解决方案探讨

1、实战问题 ILM(索引生命周期管理) 遇到热数据迁移至冷节点时造成 IO 打满影响读写的情况。 现在采取的方案是调整索引生命周期策略,定时的将Cold phase 开启/关闭。低峰开启,高峰关闭。 就是不知道这里面会有啥坑。 热节点&…...

STM32中PC13引脚可以当做普通引脚使用吗?如何配置STM32的TAMPER?

1.STM32中PC13引脚可以当做普通引脚使用吗? 在STM32单片机中,PC13引脚可以作为普通IO使用,但需要进行一定的配置。PC13通常与RTC侵入检测功能(TAMPER)复用,因此需要关闭TAMPER功能才能将其作为普通IO使用。…...

k8s学习——创建测试镜像

创建一个安装了ifconfig、telnet、curl、nc、traceroute、ping、nslookup等网络工具的镜像,便于集群中的测试。 创建一个Dockerfile文件 # 使用代理下载 Ubuntu 镜像作为基础 FROM docker.m.daocloud.io/library/ubuntu:latest# 设置环境变量 DEBIAN_FRONTEND 为 …...

重塑水资源管理的新篇章:深度剖析智慧水利解决方案的前沿技术与应用,探索其如何推动水利行业向智能化、高效化、可持续化方向迈进

目录 一、引言 二、智慧水利的核心技术 1、物联网技术 2、大数据与云计算 3、人工智能与机器学习 4、数字孪生技术 三、智慧水利的应用实践 1、智慧河湖长制信息平台 2、智能灌溉系统 3、城市防洪排涝智慧管理系统 4、智慧水库建设 四、智慧水利的推动作用 1、提升…...

C#实现数据采集系统-查询报文处理和响应报文分析处理

发送报文处理 增加一个功能码映射关系 //功能码映射关系public readonly Dictionary<string, byte> ReadFuncCodes = new Dictionary<string, byte>();<...

【音视频】AAC编码器与ffmpeg生成AAC数据

文章目录 前言为什么使用AAC&#xff1f;AAC规格常见的AAC规格规格之间的区别 ffmpeg生成AAC数据 总结 前言 在音频压缩技术不断发展的过程中&#xff0c;AAC&#xff08;Advanced Audio Coding&#xff09;编码器因其出色的音质和压缩效率&#xff0c;逐渐成为数字音频领域的…...

Linux openEuler_24.03部署MySQL_8.4.0 LTS安装实测验证安装以及测试连接全过程实操手册

Linux openEuler_24.03部署MySQL_8.4.0 LTS安装实测验证安装以及测试连接全过程实操手册 前言: 什么是 MySQL? MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于Oracle 公司。MySQL 是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表中,…...

【Elasticsearch7】3-基本操作

目录 RESTful 数据格式 HTTP操作 索引操作 倒排索引 创建索引 查看所有索引 查看单个索引 删除索引 文档操作 创建文档 查看文档 ​编辑 全量修改 ​编辑局部修改 删除文档 条件删除文档 高级查询 条件查询 URL带参查询 请求体带参查询 带请求体方式的查…...

给定一整数数组,其中有p种数出现了奇数次,其他数都出现了偶数次,怎么找到这p个数?

给定一长度为m的整数数组 &#xff0c;其中有p种不为0的数出现了奇数次&#xff0c;其他数都出现了偶数次&#xff0c;找到这p个数。 要求&#xff1a;时间复杂度不大于O(n)&#xff0c;空间复杂度不大于O(1)。 由于时间复杂度不大于O(n)&#xff0c;则不能在遍历数组中嵌套遍…...

RICHTEK立锜科技 WIFI 7电源参考设计

什么是WIFI 7? WiFi 7&#xff08;Wi-Fi 7&#xff09;是下一代Wi-Fi标准&#xff0c;对应的是IEEE 802.11将发布新的修订标准IEEE 802.11be –极高吞吐量EHT&#xff08;Extremely High Throughput &#xff09;。Wi-Fi 7是在Wi-Fi 6的基础上引入了320MHz带宽、4096-QAM、Mu…...

CUDA编程00 - 配置CUDA开发环境

第一步&#xff1a; 在一台装有Nvidia显卡和驱动的机器上&#xff0c;用nvidia-smi命令查看显卡所支持cuda版本 第二步&#xff1a; 到Nvidia官网下载CUDA Toolkit并安装&#xff0c;CUDA Toolkit Archive | NVIDIA Developer 安装时按提示下一步即可&#xff0c;安装完成用 …...

HTML5大作业三农有机,农产品,农庄,农旅网站源码

文章目录 1.设计来源1.1 轮播图页面头部效果1.2 栏目列表页面效果1.3 页面底部导航效果 2.效果和源码2.1 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_4…...

Spark的动态资源分配算法

文章目录 前言基于任务需求进行资源请求的整体过程资源申请的生成过程详解资源申请的生成过程的简单例子资源调度算法的代码解析 申请资源以后的处理&#xff1a;Executor的启动或者结束对于新启动的Container的处理对于结束的Container的处理 基于资源分配结果进行任务调度Pen…...

Python 爬虫技术 第06节 HTTP协议与Web基础知识

HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是用于从Web服务器传输超文本到本地浏览器的传输协议。它是互联网上应用最为广泛的一种网络协议&#xff0c;几乎所有的网页数据都是通过HTTP协议进行传输的。下面&#xff0c;我将结合一个简单的Python案例来详细讲解…...

js | 原型链

为什么前者会输出Lucas 后者不会&#xff1f;call动作具体干了什么? http://dmitrysoshnikov.com/ecmascript/javascript-the-core/ function Foo(){this.bar"Lucas" } let obj{}; obj.__proto__Foo.prototype; Foo.call(obj) console.log(obj.bar); // 输出Lucas/…...

Volatility:分析MS10-061攻击

1、概述 # 1&#xff09;什么是 Volatility Volatility是开源的Windows&#xff0c;Linux&#xff0c;MaC&#xff0c;Android的内存取证分析工具。基于Python开发而成&#xff0c;可以分析内存中的各种数据。Volatility支持对32位或64位Wnidows、Linux、Mac、Android操作系统…...

水表数字识别3:Pytorch CRNN实现水表数字识别(含训练代码和数据集)

水表数字识别3&#xff1a;Pytorch CRNN实现水表数字识别(含训练代码和数据集) 目录 水表数字识别3&#xff1a;Pytorch CRNN实现水表数字识别(含训练代码和数据集) 1.前言 2. 水表数字识别的方法 3. 水表数字识别数据集 4. 水表数字分割模型训练 5. 水表数字识别模型训…...

oracle数据文件损坏和误删dbf文件处理方法

加油&#xff0c;新时代打工人&#xff01; 打开sqlplus sqlplus> “/as sysdba” &#xff08;命令行登录sqlplus&#xff09; SQL>shutdown abort; &#xff08;关闭oracle数据库服务器&#xff09; SQL>startup mount ;&#xff08;挂载oracle数据库&#xff0c;这…...

postMessageXss续2

原文地址如下:https://research.securitum.com/art-of-bug-bounty-a-way-from-js-file-analysis-to-xss/ 在19年我写了一篇文章&#xff0c;是基于postMessageXss漏洞的入门教学:https://www.cnblogs.com/piaomiaohongchen/p/14727871.html 这几天浏览mXss技术的时候&#xff…...

【深度学习】sdxl的Lora训练技巧

在进行SDXL LoRA训练时&#xff0c;有一些技巧和最佳实践可以帮助你获得更好的结果。以下是一些重要的建议&#xff1a; 图像选择与标注&#xff1a; 选择多样化的高质量图像是关键&#xff0c;建议至少使用30到50张分辨率为1024x1024的图像【8†source】【9†source】。使用Vi…...

把名字设计成logo/重庆做网络优化公司电话

今天来用Node.js做一个小小的爬虫项目 爬虫目标&#xff1a;http://songshuhui.net/&#xff08;科学松鼠会&#xff09; 我们需要创建一个文件夹&#xff0c;自己命名就好&#xff0c;然后在文件夹里创建两个文件夹分别命名为data和img&#xff0c;进入到这个总文件夹的目录终…...

公司网站建设案例/网站快速有排名

作业4&#xff1a;一、通配符练习&#xff1a;1、显示/etc目录下&#xff0c;以字母开头&#xff0c;后面跟了一个非字母及其它任意长度任意字符的文件或目录&#xff1b;[rootlocalhost fuboyuan]# ls -l /etc/[[:alpha:]]*[^[:alpha:]]2、显示/usr/share/man目录下&#xff0…...

企业网站的党建文化怎么做/学电子商务出来能干嘛

一 .进程概念理解 1.前面必备知识点 #一 操作系统的作用&#xff1a;1&#xff1a;隐藏丑陋复杂的硬件接口&#xff0c;提供良好的抽象接口2&#xff1a;管理、调度进程&#xff0c;并且将多个进程对硬件的竞争变得有序#二 多道技术&#xff1a;1.产生背景&#xff1a;针对单核…...

如何做酒店网站设计/图床外链生成工具

1.前言 在自然语言处理领域&#xff0c;近几年最火的是什么&#xff1f;是BERT&#xff01;谷歌团队2018提出的用于生成词向量的BERT算法在NLP的11项任务中取得了非常出色的效果&#xff0c;堪称2018年深度学习领域最振奋人心的消息。而BERT算法又是基于Transformer&#xff0…...

嘉兴品牌网站建设/直接打开百度

最近做了一个小工具&#xff0c;里面涉及到一些取SQL Server 服务器信息的一些东西&#xff0c;找了好久&#xff0c;找到一个不错的&#xff0c;贴出来分享。 系统函数 SERVERPROPERTY ( propertyname ) 包含要返回的服务器属性信息的表达式。propertyname 可以是下列值之一&a…...

Wordpress页面方块/seovip培训

《Troubleshooting Oracle Performance,2E》作者说“Any feature should be used only if the advantages related to its utilization outweigh the disadvantages.”---任何特性都应该仅在使用它的收益比损害要大时才使用。让我想起 韩剧 《大长今》中 医学院毕业考 的剧情…...