`
weitao1026
  • 浏览: 1054178 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java基础 字符、字符串

 
阅读更多
字符

  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 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节;

    java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...

    java 字符串工具类 java 字符串工具类

    java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java ...

    java压缩字符串

    java压缩字符串

    Java分割字符串

    在Java编程语言中,分割字符串是一项常见的操作,它允许我们将一个长字符串分解成多个子字符串,每个子字符串对应原字符串中的某个部分。这通常通过使用`split()`方法来实现,该方法是Java `String`类的一个成员。在...

    Java检索字符串中是否存在某字符

    在Java编程语言中,字符串处理是一项基础且重要的任务。标题提到的"Java检索字符串中是否存在某字符",实际上涉及到字符串的查找算法。这里主要讨论的是KMP(Knuth-Morris-Pratt)算法,这是一种高效的字符串匹配...

    JAVA的字符串拼接与性能

    JAVA的字符串拼接与性能 概述:本文主要研究的是JAVA的字符串拼接的性能,原文中的测试代码在功能上并不等价,导致concat的测试意义不大。不过原作者在评论栏给了新的concat结果,如果有兴趣的同学建议自己修改代码...

    java字符串处理取出括号内的字符串

    本篇文章将深入探讨如何从字符串中提取括号内的内容,主要关注于基础的字符串操作、正则表达式以及如何利用这些工具来实现目标。 首先,我们要明白Java中的字符串是`String`类的对象,它提供了丰富的API用于字符串...

    java 分解字符串

    总之,Java中的字符串分解是一个基础且重要的概念,广泛应用于数据处理、日志分析、文本解析等场景。熟练掌握`split()`方法及其背后的正则表达式原理,对于提升Java编程能力非常有帮助。通过`StringDemo_13.java`...

    JAVA日期与字符串的转换

    ### JAVA日期与字符串的转换 在Java编程中,经常需要将日期对象转化为字符串形式以便于存储或显示,或者反过来将字符串转化成日期对象来进行日期计算等操作。本文将详细介绍如何在Java中实现这两种转换。 #### 一...

    java 分割字符串

    在Java编程语言中,分割字符串是一项常见的操作,它允许我们将一个长字符串分解成多个子字符串,每个子字符串对应原字符串中的某一部分。这通常通过使用`split()`方法来实现,该方法是`String`类的一个实例方法。让...

    java判断字符串是否是json或json数组.txt

    java判断字符串是否是json或json数组; 简单小方法,很实用;简单实用的方法;亲测可用;嗯嗯嗯呃呃呃呃呃呃呃

    java字符串练习

    本文将围绕“java字符串练习”这一主题,深入探讨如何解析字符串、逆序输出字符串以及处理特定格式的字符串数据。 首先,我们要讨论的是字符串解析。在Java中,我们可以使用`String`类提供的方法或正则表达式来实现...

    java 创建字符串类

    它们允许在原有对象的基础上进行字符串操作,而不需要每次都创建新对象。 - **效率**:在多线程环境中,推荐使用`StringBuffer`,因为它对同步进行了优化。而在单线程环境中,`StringBuilder`由于没有同步开销,...

    java将字符串中数字转换为中文大写,在输出字符串

    java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字...

    Java获取随机字符串

    在Java中生成随机字符串是一项基础而重要的任务,不同的应用场景可能需要选择不同的方法。通常情况下,对于普通应用,使用`java.util.Random`就足够了;而对于安全性要求较高的场景,则推荐使用`java.security....

    java 字符串 正则表达式 详细实例代码

    1. **字符串基础** - Java中的字符串是不可变的,这意味着一旦创建了字符串对象,就不能更改其内容。这由`final`关键字确保,提高了线程安全性。 - 创建字符串的方式有两种:通过字面量(如`String str = "Hello"`...

    java解析xml字符串

    ### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...

    java验证字符串是否符合json格式

    在Java编程中,验证字符串是否符合JSON(JavaScript Object Notation)格式是一项常见的任务,尤其是在进行前后端数据交互时。JSON是一种轻量级的数据交换格式,它允许数据以键值对的形式存储,易于人阅读和编写,...

    java 字符串中文判断

    在Java编程语言中,处理字符串是非常常见的操作,尤其是在涉及到文本分析和处理的场景。本文将深入探讨如何在Java中进行中文字符的判断和计数,这主要基于Java的Unicode编码特性以及字符集的理解。 首先,我们需要...

Global site tag (gtag.js) - Google Analytics