前面介绍的Java编程,要么是与数字有关的计算,要么是与逻辑有关的推理,充其量只能实现计算器和状态机。若想让Java运用于更广阔的业务领域,就得使其支撑更加血肉丰满的业务场景,而丰满的前提是能够表达大众熟知的人类语言和文字。对于英文世界来说,除了数字之外,编程语言起码还要支持ABCD等大小写字母,以及常见的标点符号。由于现有的基本变量类型仅能表示各类数字与布尔值,因此要引入新的变量类型来存放字母和符号,这个新的类型被称作字符型char。
有别于其它的基本类型,一个具体的字符值必须用单引号包起来,这样才能区分数字数值与数字字符,而且变量名称和字符形式的变量值也不会弄混淆。譬如下面的代码示范了如何声明字符变量,以及如何把各类字符赋值给该字符变量:

		// 声明一个字符变量,并对其赋值
char a = 'A';
System.out.println("a="+a);
// 字符包括英文字符,也包括中文字符
char tian = '田';
System.out.println("tian="+tian);
// 字符还包括数字字符,以及标点符号
char one = '1';
System.out.println("one="+one);

与其它类型相似,字符类型也有对应的字符数组char[]。除了类型名称变更,其它的用法与整型数组保持一致。下面是字符数组简单用法的代码例子:

		// 声明一个字符数组,并对其初始化
char[] array = {'A', 'B', 'C'};
//char[] array = new char[]{'A', 'B', 'C'};
// 遍历字符数组中的每个字符
for (char item : array) {
System.out.println("item="+item);
}

虽然大部分的字母和符号都能直接书写自身字符,但是少数特殊符号没有对应的表现字符,包括制表符、回车符、换行符等等,此时必须通过某种格式的式子来表示这些特定字符。在Java代码中,使用'\t'表达一个制表符,使用'\r'表达一个回车符,使用'\n'表达一个换行符。还有其它几个符号,尽管存在对应的标点,可是标点已经约定另有用途,比如两个单引号''用来包裹单个字符,两个双引号""用来包裹一串文本,反斜杆\则被用于表达换行符'\n'等等。因此,这几个特种标点只好另想办法,一样得在符号前面补充反斜杆,如'\''表达的是单引号字符,'\"'表达的是双引号字符,'\\'表达的是反斜杆字符。以上几种特殊符号的赋值代码示例如下:

		// 下列是特殊字符的转义表达形式
char tab = '\t'; // 制表符
System.out.println("tab="+tab);
char enter = '\r'; // 回车符
System.out.println("enter="+enter);
char line = '\n'; // 换行符
System.out.println("line="+line);
char singleQuote = '\''; // 单引号
System.out.println("singleQuote="+singleQuote);
char doubleQuote = '\"'; // 双引号
System.out.println("doubleQuote="+doubleQuote);
char reverseTilt = '\\'; // 反斜杆
System.out.println("reverseTilt="+reverseTilt);

像上面通过添加反斜杆来表达特殊字符的方式,在编程语言里面称作“转义”,添加了反斜杆的字符形式被称为“转义符”。

更多Java技术文章参见《Java开发笔记(序)章节目录

Java开发笔记(三十一)字符类型的表达的更多相关文章

  1. Java学习笔记三十一:Java 包(package)

    Java 包(package) 一:包的作用: 如果我们在使用eclipse等工具创建Java工程的时候,经常会创建包,那么,这个包是什么呢. 为了更好地组织类,Java 提供了包机制,用于区别类名的 ...

  2. Java开发笔记(十一)常见的数学函数

    前面介绍了Java编程的四则运算,虽然提供了基础的加减乘除符号,但是数学上还有其它运算符号,包括四舍五入用到的约等号≍.求绝对值的“| |”.开平方的“√ ̄”,这些运算符形态各异,而且并非ASCII码 ...

  3. Java开发学习(三十一)----Maven属性与版本管理

    一.属性 1.1 问题分析 如下图所示 你会发现,如果现在想更新Spring的版本,你会发现依然需要更新多个jar包的版本,这样的话还是有可能出现漏改导致程序出问题,而且改起来也是比较麻烦. 问题清楚 ...

  4. Java开发笔记(序)章节目录

    现将本博客的Java学习文章整理成以下笔记目录,方便查阅. 第一章 初识JavaJava开发笔记(一)第一个Java程序Java开发笔记(二)Java工程的帝国区划Java开发笔记(三)Java帝国的 ...

  5. Java开发笔记(三十三)字符包装类型

    正如整型int有对应的包装整型Integer那样,字符型char也有对应的包装字符型Character.初始化字符包装变量也有三种方式,分别是:直接用等号赋值.调用包装类型的valueOf方法.使用关 ...

  6. Java开发笔记(三十二)字符型与整型相互转化

    前面提到字符类型是一种新的变量类型,然而编码实践的过程中却发现,某个具体的字符值居然可以赋值给整型变量!就像下面的例子代码那样,把字符值赋给整型变量,编译器不但没报错,而且还能正常运行! // 字符允 ...

  7. Java开发笔记(一百三十一)Swing的列表框

    前面介绍了选择框的用法,当时为了方便用户勾勾点点,无论是复选框还是单选按钮,统统把所有选项都摆在界面上.倘若只有两三个选项还好办,要是选项数量变多比如超过五个,这么多的选择框一齐在界面罗列,不光程序员 ...

  8. Java开发笔记(三十四)字符串的赋值及类型转换

    不管是基本的char字符型,还是包装字符类型Character,它们的每个变量只能存放一个字符,无法满足对一串字符的加工.为了能够直接操作一连串的字符,Java设计了专门的字符串类型String,该类 ...

  9. Java开发笔记(三十五)字符串格式化

    前面介绍了字符串变量的四种赋值方式,对于简单的赋值来说完全够用了,即便是两个字符串拼接,也只需通过加号把两个目标串连起来即可.但对于复杂的赋值来说就麻烦了,假设现在需要拼接一个很长的字符串,字符串内部 ...

随机推荐

  1. php7安装php-redis扩展

    注:操作系统10.13.3 版本,其他版本的Mac系统应该也是可以的 先安装 按照顺序在命令行执行下面命令,如果当前用户权限不够的话,执行命令加上 sudo cd /usr/local/Cellar ...

  2. layui layer弹框中表格的显示

    场景描述:点击iframe里面的一个按钮,需要在父级弹出一个弹框表格. 问题描述:这个弹框的分页不能正常显示,如果把layer.open前面的parent去掉,就可以正常显示. 代码展示: paren ...

  3. 使用abcpdf分页设置的问题

    如果需要在分页时不对模块进行截断,请为相应模块添加打印样式“page-break-inside: avoid” 如果需要在指定位置进行强制分页,请添加:“<div style="pag ...

  4. CFUpdate高速模式下出现Error #2038提示的解决方案

    使用CFUpdate上传文件,在IE模式下是正常的,切换到高速模式下出现提示Error #2038错误,文件无法上传. 向作者了解到需要设置challs_flash_update函数中的a.url为绝 ...

  5. Shell语言

    1.shell脚本规范以.sh结尾 2.运行 3.赋予权限,查询shell的执行过程 输出时间的 输出日历 输出一年的日历 修改语言 计算机 read –t 3 –p “1111111111”   # ...

  6. laytpl模板——怎么使用ajax与数据交互

    第一次在项目中用laytpl模板,下面是一些使用过程中的探索,希望对小伙伴们有所帮助. 注:第一次使用这个模板的小伙伴建议先去看看官网 laytpl <script type="tex ...

  7. iOS学习——核心动画

    iOS学习——核心动画 1.什么是核心动画 Core Animation(核心动画)是一组功能强大.效果华丽的动画API,无论在iOS系统或者在你开发的App中,都有大量应用.核心动画所在的位置如下图 ...

  8. React 中 Link 和 NavLink 组件 activeClassName、activeStyle 属性不生效的问题

    首先 导航链接应该使用  NavLink 而不再是  Link NavLink 使用方法见 https://github.com/ReactTraining/react-router/blob/mas ...

  9. BBS论坛(三十)

    30.显示评论和添加评论功能完成 (1)apps/models.py class CommentModel(db.Model): __tablename__='comment' id=db.Colum ...

  10. Nginx学习系列四默认负载均衡轮询及Ip_hash等常用指令介绍

    一.简介 Upstream模块是Nginx中一个核心模块,当客户端访问Nginx服务器的时候,Nginx会从服务器列表中选取压力小的服务器,然后分配给客户端进行访问.这个过程,Nginx通过轮询算法轮 ...