Java语言:字符型的详解、字符串的比较

简介: Java语言:字符型的详解、字符串的比较

前言

       在Java数据类型中,我们学到了整形、字符型、字符串型,而整形我们知道如何判断比较大小,但是字符型(char)该如何比较呢?还有字符串型(String)比较呢?

一.字符型的知识

  1. 字符变量使用char,是单引用号(  ' '  )括起来的单个字符,例如:char c1 = 'a'
  2. java中还允许使用转义字符  ' \ ' 来将其后面的字符转变为特殊字符常量。例如:char c3 = '\n';   '\n'表示换行符。
  3. 字符型(char)其实本质是一个整数,而根据的是unicode码
  4. char类型可以赋值一个整数,然后输出时会有对照unicode码,将其字符输出
  1. 由于char本质是整数,因此可以直接进行运算,得出的结果,也会有对应的Unicode码。

注:字符和码值的对应关系是通过字符编码表决定的,不同的语言遵守不同的编码表,例如:C语言遵守ASCll表,Java语言遵守Unicode表。

char类型存储数字

  public static void main(String[] args) {
        char b=61;        //在Unicode码中61位是 =
     System.out.println(b);
   }

变量b虽然存储的是61,但是b是字符型,所以在输出的时候,会自动转换为对应的Unicode码:=

字符型输出整数

1. pub  public static void main(String[] args) {
        char b='a';       
        System.out.println((int)b); //'a'进行类型转换变成97
   }

如果想知道该字符对应的Unicode码的位置,则使用强制类型转换。

字符型的运算

  public static void main(String[] args) {
       char a='a';
       char b='a'+1;   
     System.out.println(a+1); //输出98
     System.out.println(b);   //输出b
       char c=97;
       char d=97+1;     
     System.out.println(c+1);  //输出98
     System.out.println(d);    //输出b
   }

b变量在定义时进行了运算,会先把'a'转换成数字,然后进行运算,最后再转化成字符存储


a变量在输出时,进行运算,则是将'a'转换为数字,然后直接输出相加之后的数值结果


c变量虽然存储的是整数,但是会自动转换为字符存储,输出时,将字符转换为数字再进行运算


d变量存储的是97+1的值,存储时会自动转换为字符。

二.字符型比较大小

       在字符型知识中,我们学习到了char类型本质是整数,而对应的整数由Unicode码决定,所以在比较大小时,表面是比较字符,实际是比较两个字符在Unicode码中的顺序。

  public static void main(String[] args) {
        char a='a';    //对应的Unicode码是97
        char b='b';    //对应的Unicode码是98
     System.out.println(a<b);    //true
     System.out.println(a>b);    //false
     System.out.println(a==b);    //false
}

三.字符串比较

       字符串是什么?多个字符组合,那么如何比较呢?是使用<、>、=等运算符嘛?,不是的,而是使用方法,而常用的方法有三种:equals() 方法、equalsIgnoreCase() 方法、 compareTo() 方法。


比较是否相等:equals() 方法、equalsIgnoreCase() 方法


比较大小: compareTo() 方法

equals()方法

  逐一对比两个字符串的每一个字符是否相同,如果两个字符串长度相同并且拥有相同的字符,便返回true,若不是,返回false;

语法格式:字符串1.equals(字符串2);

public static void main(String[] args) {
        String str1="abcdefg";
        String str2="abcdefg";
        String str3="abcd";
    System.out.println(str1.equals(str2));    //输出true
    System.out.println(str1.equals(str3));   //输出false
}

equalslgnoreCase()方法

       equalsIgnoreCase() 方法的作用和语法与 equals() 方法完全相同,唯一不同的是 equalsIgnoreCase() 比较时不区分大小写,也就是说,此方法会认为A与a是一样的。

String str1 ="abc";
String str2 ="ABC";
System.out.println(str1.equalsIgnoreCase(str2));// 输出 true

compareTo() 方法

语法格式:str1.compareTo(str2);      

       前两个方法都是比较字符串是否相等,而这个方法是比较字符串大小,而所谓的比较大小是指:从第一个字符开始比较,而比较的就是对应的码值,如果不等,则比较结束,如果相等,则比较下一位,直到比较的字符有一方全比较完,这时就比较字符的长度.

  1. 字符不同,返回str1的字符-str2的字符
  1. 字符相同,返回0
  2. 某个字符串比较完,返回str1长度 - str2长度值的差
        String str1="abcdefg";
        String str2="abcdefg";
        String str3="abcd";
        String str4="abca";
//字符不同,返回两个字符对应的码值之差
   System.out.println(str3.compareTo(str4)); //返回 'd'-'a'的差:3 
//字符相同,返回0
    System.out.println(str1.compareTo(str2)); //返回 0;
//某个字符串比较完,返回返回前面字符串长度-后面字符串长度值。   
    System.out.println(str1.compareTo(str3));  //返回 3



制作不易,哥哥姐姐们点个赞吧!!!

                                                                                                       --------懒惰的tq02

目录
相关文章
|
10天前
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
213 108
|
3月前
|
SQL JSON Java
告别拼接噩梦:Java文本块让多行字符串更优雅
告别拼接噩梦:Java文本块让多行字符串更优雅
390 82
|
6月前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
212 5
|
3月前
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
237 14
|
3月前
|
监控 Java API
Java语言按文件创建日期排序及获取最新文件的技术
这段代码实现了文件创建时间的读取、文件列表的获取与排序以及获取最新文件的需求。它具备良好的效率和可读性,对于绝大多数处理文件属性相关的需求来说足够健壮。在实际应用中,根据具体情况,可能还需要进一步处理如访问权限不足、文件系统不支持某些属性等边界情况。
209 14
|
4月前
|
Java 编译器 应用服务中间件
为什么说 Java 语言编译与解释并存的原因
在编程语言的世界里,Java以其独特的“编译与解释并存”特性独树一帜。这一特性不仅赋予了Java强大的跨平台能力,还使其在性能和灵活性上达到了很好的平衡。接下来,我们将深入探讨Java语言这一特性的本质、原理以及在实际应用中的体现。
97 6
|
3月前
|
JSON JavaScript 前端开发
Python+JAVA+PHP语言,苏宁商品详情API
调用苏宁商品详情API,可通过HTTP/HTTPS发送请求并解析响应数据,支持多种编程语言,如JavaScript、Java、PHP、C#、Ruby等。核心步骤包括构造请求URL、发送GET/POST请求及解析JSON/XML响应。不同语言示例展示了如何获取商品名称与价格等信息,实际使用时请参考苏宁开放平台最新文档以确保兼容性。
|
4月前
|
分布式计算 Java 大数据
Java 语言基础概念与常识之主要特点解析
Java是一种广泛应用于企业级开发、移动应用(如Android)、大数据处理及云计算等领域的编程语言。其核心特点包括跨平台性(一次编写,到处运行)、面向对象设计、自动垃圾回收、多线程支持和高性能表现。Java通过JVM实现跨平台,具备强大的健壮性和安全性,同时拥有丰富的标准库与活跃的开发者社区。本文深入解析Java的技术优势及其在电商系统、大数据处理和云计算中的实际应用,并提供相关面试资料供学习参考。
128 0
|
4月前
|
网络协议 安全 Java
实现Java语言的文件断点续传功能的技术方案。
像这样,我们就完成了一项看似高科技、实则亲民的小工程。这样的技术实现不仅具备实用性,也能在面对网络不稳定的挑战时,稳稳地、不失乐趣地完成工作。
253 0

热门文章

最新文章