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

DAY9-字符串笔记整理2018-1-19

      Java字符串

1、子串:

String s1=greeting.substring(2);//表示去掉从第0个开始的2个字符

String s2=greeting.substring(0, 3);//表示截取第0个到第3个字符

左图为程序片段,右图为运行结果:

  

 

 

 

2、拼接:

  1. 使用+拼接两个字符串。
  2. 如果需要把多个字符串放在一起,用一个定界符分隔,可以使用静态join方法:

String array1= String.join("/","人类","动物类","鸟类","鱼类");

左图为程序片段,右图为运行结果:

   

 

 

3、不可变字符

由于不能修改java中的字符,故将String类中的字符称为不可变字符

4、检测字符是否相等

1、检测两个字符串是否相等equal

表达式:string1.equal(string2);

如果string1string2相等返回true,否则返回false。可以是字符串变量,也可以是一个字符串实体,如:”hello”equal(“world”); 是符合条件的。

2、检测两个字符串相等,但是不区分大小写,可使用equalsIgnoreCase方法。

注:一定不能使用==检测字符串是否相等

下面是《java核心技术》里的片段:

 

 

5、空串和null

空串””是长度为0的字符串。检测字符串长度:len=string1.length(); 空串有自己的长度,长度为0,内容为空。String这个变量还可以存放一个特殊的值null,这时候表示没有任何对象与该变量关联。

注:a.如果要检测一个字符串既不为0也不为空需要同时满足:string1!=null&&string.length()!=0;

b.如果一个字符为null,调用时会出错

 

6、码点与代码单元

   先简单说明一下Unicode:(统一码、万国码、单一码)是计算机领域的一项业界标准,包括字符集、编码方案等。

UTF-16编码(16-bit Unicode Transformation Format:Unicode的一个使用方式,Transformation Format即把Unicode转化为某种格式。

(1)码点数量:实际的字符个数,辅助字符算一个

(2)代码单元数量:string.length()计算的不是实际字符长度,这时候辅助字符算两个。

  1. char类型是一个采用UTF-16编码(16-bit Unicode Transformation Format)表示Unicode码点的代码单元。大多数的常用Unicode字符(u+000-u+FFFF)使用一个代码单元就可以表示,而辅助字符(u+10000-u+10FFFF)需要一对代码单元。一般代码单元与与码点的长度是一致的,但对于辅助字符,如:u+ID546,其代码单元长度为2,但是码点长度为1
  2. length方法将返回采用UTF-16编码表示的给定字符所需的代码单元数量。
  3. 想要得到实际长度,即码点数量,可用codePointCount.
  4. 想要字符串中某个字符可用:String.charAt(n);
  5. 想要得到第n个码点:String greeting1="hello world";

   

  

 

 

  1. 如果想要遍历一个字符串查看每个代码点可以使用下面的代码:

function void listCodePoint(String string){
     int codePointNum = string.codePointCount(0,string.length() - 1);

}

下面是《java核心技术》里对码点与代码单元的解释:

 

 

 

 

 

 

7、String API

API:(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组历程的能力,而又无需访问源码,或理解内部工作机制的细节。

Java中的String类包含50多种方法,大多数有用。

Java核心技术》P51

 

 

 

 

 

8、阅读联机API文档

String类中包含许多方法,而且,在标准库中有几千个类,方法数量惊人,要想记住所有类和方法是不可能的。因此,学会使用在线API文档十分重要,从中可以查阅到标准库中所有类和方法。API文档是JDK(开发工具包)的一部分,是HTML格式的。

如下图:Java在线API文档(自行百度即可找到)

 

 

9、构建字符串

  1. 由许多小段字符串构建一个字符串,首先建一个空的字符串构建器:

StringBuilder builder=new StringBuilder();

  1. 当每次需要添加一部分内容时,就调用append方法

builder.append(ch);//追加单个字符append a single character

builder.append(str);//追加单个字符串append a single string

  1. 在需要构建字符串时就toString方法,将可以得到一个String对象,其中包含了构建器中的字符序列

String completedString=builder.toString();

注:在JDK5.0中引入了StringBuilder类。这个类的前身是StringBuffer,其效率有些低,但允许采用多线程的方式添加或删除字符的操作。如果所有字符串在一个单线程中编辑(通常是这样),则应该用StringBuilder代替它。这两个类的API是相同的。

下面是API注释包含了StringBuilder类中的重要方法:《Java核心技术》P55

 

 

   今天整理了笔记,另外开始接触对象,明天继续加油!

 

 

转载于:https://www.cnblogs.com/archer-lcy/p/8319323.html

相关文章:

  • 新建一个虚拟机
  • Android layer-list的属性和使用具体解释
  • 安全地关闭 jvm(tomcat停止钩子事件处理)
  • 智慧医疗“验血查癌”或会实现
  • shell脚本练习题
  • 沉浸式状态栏解析
  • 若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet
  • Spring Cloud微服务分布式云架构简介
  • centos7 mysql 5.7 yum安装
  • Maven单独构建多模块项目中的单个模块
  • 常用页面校验整合
  • java spring事务管理相关
  • HTML5 a标签的download属性
  • 正向代理,反向代理(图片解析)
  • nginx常用命令
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • ES6--对象的扩展
  • Java应用性能调优
  • Logstash 参考指南(目录)
  • Solarized Scheme
  • uva 10370 Above Average
  • 搞机器学习要哪些技能
  • 基于webpack 的 vue 多页架构
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 想写好前端,先练好内功
  • 由插件封装引出的一丢丢思考
  • 源码安装memcached和php memcache扩展
  • 如何在招聘中考核.NET架构师
  • 如何正确理解,内页权重高于首页?
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • $.ajax()
  • $.ajax()方法详解
  • (10)STL算法之搜索(二) 二分查找
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (6)STL算法之转换
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (二)c52学习之旅-简单了解单片机
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET 8.0 发布到 IIS
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET 药厂业务系统 CPU爆高分析
  • .NetCore项目nginx发布
  • [ C++ ] STL---仿函数与priority_queue
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [2018-01-08] Python强化周的第一天
  • [AIGC] 使用Curl进行网络请求的常见用法
  • [BROADCASTING]tensor的扩散机制
  • [C/C++]数据结构 深入挖掘环形链表问题
  • [C/C++随笔] char与unsigned char区别
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [C++] 统计程序耗时
  • [C++]C++类基本语法