如何在Java中使用字元存储Unicode字符

138 阅读4分钟

如何在Java中使用字元存储Unicode字符

无意义的数据元素被称为字元,因为它们有固定的值。在Java中,字元也被称为常数。

在字元的帮助下,有可能表示各种各样的值。

Java中的字符串是对象。如果我们在许多变量中指定同一个字符串,Java的虚拟机将只在内存中存储一个字符串对象。

对于字符的编码,有一个国际标准。

字符可以用各种形式表示,如文本文件。它们也可以存储在Unicode或char数据类型中。

三种类型的字符编码是:UTF-8UTF-16 ,和UTF-32 。网络内容应该只使用UTF-8

要使用字元,我们应该把它们放在单引号里。

单引号可以用来指定除反斜杠以外的任何可打印字符\ 作为字符本身。a,A, 和+ 是这些字面符号的例子。

为了表示不能以这种方式输入的字符,如退格符,必须使用转义序列来代替。

与其他字符字头一样,转义序列应该用单引号包裹。

编码方法

1.使用char数据类型的Unicode。

在这种方法中,我们使用单引号将Unicode字符存储在char变量中,然后再输出值。

其实现方式如下所示。

import java.io.*;
class Example {
    public static void main(String[] args)
    {
        char first1 = '/';
        System.out.println(first1);
        char second2 = '?';
        System.out.println(second2);
        char third3 = '1';
        System.out.println(third3);
        char fourth4 = '~';
        System.out.println(fourth4);
        char fifth5 = '$';
        System.out.println(fifth5);
        char sixth6 = 'a';
        System.out.println(sixth6);
        char seventh7 = 'A';
        System.out.println(seventh7);
    }
}

输出

/
?
1
~
$
a
A

2.将Unicode值归于char数据类型

使用单引号,你将建立一个字符变量,在变量中存储一个Unicode值,然后打印它。

实现方法如下所示。

import java.io.*;
class Example {
    public static void main(String[] args)
    {       
        char first1 = '\u002F';
        System.out.println(first1);
        char second2 = '\u003F';
        System.out.println(second2);
        char third3 = '\u0031';
        System.out.println(third3);
        char fourth4 = '\u007E';
        System.out.println(fourth4);
        char fifth5 = '\u0024';
        System.out.println(fifth5);
        char sixth6 = '\u0061';
        System.out.println(sixth6);
        char seventh7 = '\u0041';
        System.out.println(seventh7);
    }
}

输出

/
?
1
~
$
a
A

3.指派ASCII数据类型

单引号将ASCII值保存在一个变量中,然后用来打印该值,如下图所示。

import java.io.*;
class Example {
    public static void main(String[] args)
    {
        char first1 = 47;
        System.out.println(first1);
        char second2 = 49;
        System.out.println(second2);
        char third3 = 126;
        System.out.println(third3);
        char fourth4 = 36;
        System.out.println(fourth4);
        char fifth5 = 97;
        System.out.println(fifth5);
        char sixth6 = 65;
        System.out.println(sixth6);
    }
}

输出

/
1
~
$
a
A

Unicode字符字元

要打印Unicode字符,请输入转义序列 "u"。

Unicode序列可以在Java代码中到处使用。只要它包含Unicode字符,就可以作为一个标识符使用。

你可以使用Unicode来传达注释、ID、字符内容和字符串字面意义,以及其他信息。

然而,请注意,它们会被编译器提前解释。因此,使用Unicode换行符作为打印语句的一部分,会在你的源代码中引起错误。

编译器将把这个问题视为一个实际的换行符,它出现在一个字符字面的单引号结尾之前,这将导致一个错误。

下面的代码显示了这个错误和最佳使用情况。

System.out.print( "\n" );   // This is okay
System.out.print( '\u000a' ); // This will give a compiler error

换行符被用来过早地终止Unicode序列。正如所讨论的,编译器将Unicode序列解释为一个字符字面。

统一码的优点

  • 当一个应用程序使用Unicode时,读写字符数据的符号都包含在一个代码页中。这就提高了开发速度。
  • UTF-8中的每个标准ASCII字符都被分配了它的ASCII值。对于ASCII应用程序,这个功能简化了转换过程。
  • 对于利用不同代码页的OpenEdge客户端来说,可以毫无问题地读写一个单一的UTF-8数据库。

Unicode的一个缺点是,当涉及到存储和分配变量时,它需要更多的内存。

关于字词的更多信息

在你的软件中使用字面意义允许你在你的代码中指定精确的值。

在命名变量和赋值时,必须遵循一定的规则,以使程序更具可读性。

字母的一个优点是它们不需要大量的计算。这意味着它们可以直接在源代码中被定义。

结论

数据通过字符编码转换为字母和数字。这个过程指示计算机如何进行转换。

在转换过程中,一个字母、数字或符号被赋予一个数字值。在处理Unicode文件时,一些编辑器会在文件的开头添加字节顺序标记或BOM。