java.lang.Character.digit(char ch, int radix)方法 :

在指定的基数返回字符ch的数值,如果基数是不在范围内MIN_RADIX≤基数≤MAX_RADIX或如果该值的通道是不是一个有效的数字在指定的基数-1,则返回。

public final class Character implements java.io.Serializable, Comparable<Character> {public static final int MIN_RADIX = 2;public static final int MAX_RADIX = 36;
}

也就是说radix的赋值范围2<=radix<=36,任何这个范围外的值,返回值都为-1(这个是必要条件,下面几种情况必须建立在此条件基础上)

以下是如果至少有一个字符是一个有效的数字:

方法isDigit为true的字符和Unicode字符的十进制数值(或分解的单字符)小于指定的基数。在这种情况下的十进制数字值被返回。

参数ch为数字字符时,若参数ch小于参数radix,则返回参数ch的整数类型。否则返回-1

  int digit = Character.digit('0', 2);      返回值 0int digit2 = Character.digit('9', 36);    返回值 9

返回值范围0~9

该字符是一个大写拉丁字母'A'到'Z'和它的代码是小于基数+'A' - 10。在这种情况下,ch - 'A'+10返回。

参数ch为大写字母A~Z时(参考ASCII码表,十进制取值范围在65~90),若参数ch的十进制数小于参数(radix+55),则返回参数(ch-55)

int digit = Character.digit('A', 11);   返回值 10
int digit2 = Character.digit('Z', 36);  返回值 35

此处ch参数最小是A,所以要保证不返回-1,则参数radix必须大于10(且小于等于36),也就是,radix的取值范围11~36

结果返回值范围在10~35

剩下三种情况:

字符的小写拉丁字母'a'到'z'和它的代码小于radix+'A' - 10。在这种情况下,ch - 'a'+10返回。

字符是一个全角大写拉丁字母A('\ uFF21')到Z('\ uFF3A“)和它的代码小于radix+'\ uFF21” - 10。在这种情况下,ch - '\ uFF21'+ 10返回。

该字符是一个小写拉丁字母的全角('\ uFF41')到Z('\ uFF5A“),且它的代码小于radix+'\ uFF41” - 10。在这种情况下,ch - '\ uFF41'+10返回。

这三种情况和上面这种情况相同,结果返回值范围在10~35

还有一个方法,java.lang.Character.digit(int ch, int radix),参数ch取值为A~Z,a~z的十进制数,返回结果与字母相同

总结一下, Character.digit()在取值正确的范围下,返回值在0~35之间,返回值若是0~9之间,则参数ch必为0~9的数字字符串,返回值在10~35之间,则参数必为字母。

radix中文翻译是基数,好像部分文档里也翻译为进制,总之这个方法是把数字字符串和字母(忽略大小写)转换成0~35之间的一个数而已

Character.digit()详解相关推荐

  1. Java.lang.Character类详解

    一.前言 Character将一个char基本数据类型封装在类中.这个类中只有一char类型的变量.Character是基于unicode码进行的Character所有的方法,都是围绕着这个char基 ...

  2. DL之LeNet-5:LeNet-5算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之LeNet-5:LeNet-5算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 LeNet-5算法的简介(论文介绍) LeNet-5算法的架构详解 1.LeNet-5 结构分 ...

  3. 2020年 第11届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2020.7.5】

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:部分 ...

  4. HSQLDB数据库使用详解(入门)及快速使用

    hsql数据库使用详解(入门)及快速使用 一.简介: hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议,如果你是使用Java编程的话,不凡考虑一下使用它,相对其 他数据库 ...

  5. EditPlus正则表达式替换字符串详解

    EditPlus正则表达式替换字符串详解 发布时间:April 8, 2007 分类:Regular <PHP 实现多服务器共享 SESSION 数据> <利用javascript在 ...

  6. 一周刷爆LeetCode,算法da神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记

    一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记 教程与代码地址 P1 出圈了!讲课之外我们来聊聊 ...

  7. Integer源码详解

    尊重原创,转载请标明出处    http://blog.csdn.net/abcdef314159 对于Integer这个类估计大家也都非常熟悉了,以前看过他的源码,但也只是粗略的看了一下,最近有时间 ...

  8. oracle11g 常用函数(Functions)详解

    Oracle11g常用函数(Functions)详解 目录 ABS. 3 ACOS. 3 ADD_MONTHS. 4 ASCII 4 ASCIISTR. 5 ASIN.. 5 ATAN.. 5 ATA ...

  9. java的String类源码详解

    java的String类源码详解 类的定义 public final class Stringimplements java.io.Serializable, Comparable<String ...

  10. C# 正则表达式详解(学习心得 25)

    正则表达式 是一种匹配输入文本的模式. .Net 框架提供了允许这种匹配的正则表达式引擎. 超级小白友好,讲解C#基础,每集5分钟轻松学习,拒绝从入门到放弃! 使用以下字符,运算符,结构,来定义正则表 ...

最新文章

  1. 洛阳综合保税区正式获国务院批复同意设立
  2. Sql Server 三个很有用的函数
  3. zookeeper的设计猜想-Observer角色
  4. 工业交换机厂家有哪些?工业交换机十大品牌供应商!
  5. paip.提升效率---提升绑定层次--form绑定取代field绑定
  6. 问答系统设计的一些思考
  7. python中int对象不可调用_'int'对象在python中不可调用
  8. linux 文件读写锁,linux下的简单文件读写锁的操作
  9. 机器学习--线性回归4(线性拟合、局部线性拟合实战)
  10. PyTorch学习—20.模型的微调(Finetune)
  11. Pandas库之DataFrame学习笔记
  12. Linux内核中的atoi,itoa等函数
  13. android for armeabi,【我的Android进阶之旅】解决错误ABIs [armeabi] are not supported for platform....
  14. Setup Factory 9打包Windows后台服务
  15. 如何将720P的mp4视频转换成1080P的视频?视频分辨率如何修改?
  16. 电脑不小心删除文件如何找回?你还不知道这3个小技巧?
  17. 硬盘是计算机的 奥鹏,奥鹏计算机应用基础一教学内容.docx
  18. 北邮计算机学院4组,北邮信息与通信工程学院导师组介绍(十一)
  19. CASCADE: Contextual Sarcasm Detection in Online Discussion Forums(2018)论文笔记
  20. 类图,类与类之间的关系

热门文章

  1. JS--统一社会信用代码校验
  2. 秋招 | 携程 | 携程集团2022秋招内推正式启动啦~!
  3. 点云可视化——实时显示点云流
  4. input file类型单个文件上传formData
  5. 影响英语单词拼写的6大因素
  6. 2019年会总结+自我反思
  7. 计算机想ping一下网络,Ping命令以检测Windows7下的计算机网络速度
  8. 商业虚拟专用网络技术二通用路由封装
  9. linux 效果器软件下载,盘点丨15款免费又好用的音乐制作软件
  10. oss批量上传工具_阿里云oss一键上传工具-阿里云OSS上传工具PC版下载V1.0最新版-西西软件下载...