如何比较两个String类型数据的大小
起因
在做题的过程中总会遇到用字符串String
的形式保存的int
类型的数据
比如:String s = "1234"
然后让你对这个字符串进行一些数字方面的操作
之前做题没有想过总结和反馈 而是单纯的一面做一面忘
今天做题遇到了402. 移掉K位数字这道题
里面也涉及到了这样一句代码i < stack.peek()
其中i
是char
类型的 stack.peek()
也是char
类型的
我之前遇到的这种情况都是想办法转换成int
类型然后比较
对确实很蠢 我很菜 但是我不气馁
我决定好好去总结一下如何比较两个char类型数据
类型一: 纯数字的比较
如果两个数String字符串中 仅包含 数字 0 ~ 9 和小数点 " . "
String a = "32";
String b = "334";
// 首先将两个数都转换为int 数据
int aInt = Integer.valueOf(a);
int bInt = Integer.valueOf(b);
// 比较大小
boolean res = aInt > bInt;
类型二: 包含字母的String的比较
两个String 字符串中包含字母, 则使用 a.compareTo(b)
函数
该方法用于判断一个字符串是大于、等于还是小于另一个字符串。判断字符串大小的依据是根据它们在字典中的顺序决定的。
其返回的是一个int类型值。
若Str1等于参数字符串Str2字符串,则返回0;
若该Str1按字典顺序小于参数字符串Str2,则返回值小于0;
若Str1按字典顺序大于参数字符串Str2,则返回值大于0。
String a = "3";
String b = "32a";
int res = a.compareTo(b); // 如果 a > b 则返回res > 0; 如果 a < b 则返回res < 0;
扩展: 对Char类型的理解
Java中char
类型数据占用两个字节, 共16位, 可以用来存放汉字
Char类型数据的运算
char
类型是可以运算的因为char
在ASCII等字符编码表中有对应的数值。
在JAVA中,对char
类型字符运行时,直接当做ASCII表对应的整数来对待。
char m ='a'; //——a。
char m ='a'+'b'; //——Ã。 //char类型相加,提升为int类型,输出对应的字符
int m = 'a' + 'b'; // ——195。//195没有超出int范围,直接输出195。