Java基础(一):字符、字符串
来源:互联网 发布:淘宝店铺首页如何设置 编辑:程序博客网 时间:2024/06/01 10:34
字符
Java用char类型来表示字母、数字、标点符号以及其他特殊字符。Java基于Unicode4.0来表示每一个字符,Unicode的设计目标是容纳世界上所有主要语言中的字符。
Java使用16位即2个字节来表示字符,这意味着Java可以表示216,即65536个字符,看起来很多,但是还不能支持整个Unicode标准中的所有字符。如果超过这个范围,Java允许使用int类型来表示字符,int类型字长4个字节32位,可以表示232位的字符。
Java中表示字符的最简单的方式如下,使用单引号嵌入字符:
char capitalA = 'A';
字符从本质上讲是数字。每一个字符映射到一个范围在0到65 535的正整数,每一个字符在Unicode标准中都有对应的数字值,称为Unicode值。我们可以用如下方法来查看字符的Unicode码:
char word = 'A';
int p = 65;
System.out.println("a在unicode表中的顺序位置是:" + (int) word);
System.out.println("unicode表中的第65位是:" + (char) p);
并不是所有的字符都可以通过键盘输入到计算机。您可以用Unicode转义符(\u或者\U,后面跟着四位的十六进制数字)来表示Unicode字符:
char word = '\U0041'
特殊字符
Java定义了一些用来格式化输出的特殊字符。Java使用转义符来表示这些特殊字符,该转义符由一个反斜线(\)和一个随后的助记符组成:
回车 '\r'
换行 '\n'
Tab '\t'
换页 '\f'
退格 '\b'
由于一对单引号和反斜线对于字符表示有特殊的意义,所以您必须用转义符来表示它们。
单引号 '\'
换码符 '\\'
双引号 '\'''
注意:双引号不需要转义。
字符串
字符串对象表示固定长度的字符序列,String类可能是Java程序中使用的最频繁的类了。
来看两种创建字符串的方式:
String a = "abc";
String b = new String("abc");
实际运用中,我们要避免第二种方式,第二种方式创建了两个String对象。首先,Java虚拟机创建了String对象“abc”。然后,java虚拟机创建一个新的String对象,并把字符串“abc”传入构造函数。这是一次完全没有必要的构造,既影响了性能,也提高了代码阅读难度。
由于字符串是字符序列,所以可以嵌入特殊字符。
String s = "\t\n";
字符连接
您可以将一个字符串和另一个字符串连接起来,从而生成第三个字符串。
String abcd = "ab".concat("cd")
在Java中,字符串连接是一个非常常用的操作。您可以用加号(+)作为字符串连接的捷径。
String abcd = "ab" + "cd";
在实际编码中,我们也基本都是这么做的。
+符号既可以操作数值的加减,也可以用于连接字符串,这叫做操作符的重载。
字符串的不可改变性
在JavaAPI文档中我们可以看到String类的定义:
public final class String extends Object implements Serializable, Comparable<String>, CharSequence
String类是一个final类,这代表一个String对象是不可改变的,String类的方法中我们也找不到任何能够改变字符串的值和长度的方法。这就是字符串的不可改变性。
当我们进行连接字符串操作的时候,Java虚拟机没有改变其中任何一个字符串,而是创建了一个新的String对象,把连接后的结果赋予了它。Sun将String设计成不可改变的,这是为了让String的行为最优化。因为String在多数应用中都被大量使用,所以它的优化是非常关键的。
StringBuilder
类java.lang.StringBuilder提供了动态创建字符串的能力。使用方法上与StringBuffer是一样的,不同之处在于,StringBuilder不是线程安全的,但是更搞笑,StringBuffer是现成安全的。
系统属性
在程序中,我们经常直接在字符串中写入特殊字符,比如换行符"\n",这样做不仅冗余,而且难以移植,不同平台的换行符也不同。
类java.lang.System中可以找到这个问题的解决方案,该类包含了方法getProperty,此方法以一个系统属性的键值作为参数,并返回与该键值相关联的系统属性。Java虚拟机在启动的时候,就设置好了若干系统属性。多数属性返回与虚拟机以及当前执行环境相关的信息。API文档中针对getProperties方法,给出了可用的属性列表。例如换行符的属性是line.separator。
- Java基础(一):字符、字符串
- Java基础:字符、字符串
- java基础 ---字符和字符串
- Java字符与字符串(基础)
- 黑马程序员--java基础--IO流(一)字符流
- Java-基础 String操作删除字符串中的一个字符(字符串切割)
- 黑马程序员--Java基础--字符串常用操作(一)
- swift基础(二):字符串和字符
- 字符串数组&字符指针理解(一)
- Swift--字符串和字符(一)
- Java语言基础字符和字符串参与运算
- 正则表达式基础(一)------字符组
- java基础(一)
- Java基础(一)
- java基础(一)
- java基础(一)
- Java 基础----(一)
- java 基础 (一 )
- 网络安全人才短缺 可能成为产业发展的最大瓶颈
- install Docker
- springmvc下载excel表格,自定义文件名称 附带生成excel方法
- MaterialSpinner 下拉菜单
- Android ImageView 总结
- Java基础(一):字符、字符串
- 《并发编程》--6.Java内存模型(JMM)的关键字volatile
- CSS中的属性
- 关闭内核中的CPU的开启关闭提示:CPU1: Booted secondary processor(分色排版)
- python--wxpython实现UI窗口实例
- android 获取系统日期 时间
- 每天一点积累(七)--代理模式
- Spring Mvc ,各种解析器 及 struts2 区别
- 浅谈iOS视频播放的N种解决方案