java 中字符串 怎么比较大小

ruisheng_412 2008-08-07 10:33:36
比如 B234 和B235怎么比较他们的大小?
也就是说随便的两个字符串大小怎么比较????
...全文
11781 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
java375378563 2008-09-08
  • 打赏
  • 举报
回复
如果那样比的话,那么12位的16进制字符串应该如何比较大小.
snsy543 2008-08-26
  • 打赏
  • 举报
回复
compareTo
guoxyj 2008-08-26
  • 打赏
  • 举报
回复
up
lj850314 2008-08-26
  • 打赏
  • 举报
回复
原来如此
cwjieNo1 2008-08-26
  • 打赏
  • 举报
回复
conpareTo() 直接比较
Mazengfei 2008-08-26
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 hanbb 的回复:]
直接比
[/Quote]
loaferwang 2008-08-26
  • 打赏
  • 举报
回复
compareToIgnoreCase这个方法也行呀,我试过啦,结果一样呀!
compareTo
public int compareTo(String anotherString)
按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象在参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只有在方法 equals(Object) 返回 true 时才返回 0。
这是字典排序的定义。如果这两个字符串不同,则要么它们在某个索引处具有不同的字符,该索引对二者均为有效索引,要么它们的长度不同,或者同时具备上述两种情况。如果它们在一个或多个索引位置上具有不同的字符,假设 k 是这类索引的最小值;则按照 < 运算符确定的那个字符串在位置 k 上具有较小的值,其字典顺序在其他字符串之前。这种情况下,compareTo 返回这两个字符串在位置 k 处的两个不同的 char 值,即值:

this.charAt(k)-anotherString.charAt(k)

如果它们没有不同的索引位置,则较短字符串在字典顺序上位于较长字符串的前面。这种情况下,compareTo 返回这两个字符串长度的不同,即值:
this.length()-anotherString.length()


指定者:
接口 Comparable<String> 中的 compareTo
参数:
anotherString - 要比较的 String。
返回:
如果参数字符串等于此字符串,则返回 0 值;如果按字典顺序此字符串小于字符串参数,则返回一个小于 0 的值;如果按字典顺序此字符串大于字符串参数,则返回一个大于 0 的值。

--------------------------------------------------------------------------------

compareToIgnoreCase
public int compareToIgnoreCase(String str)
不考虑大小写,按字典顺序比较两个字符串。此方法返回一个整数,它的正负号是调用 compareTo 的正负号,调用时使用了字符串的规范化版本,其大小写差异已通过对每个字符调用 Character.toLowerCase(Character.toUpperCase(character)) 得以消除。
注意,此方法不 考虑语言环境,因此可能在某些特定的语言环境中产生不理想的排序。java.text 包提供 Collators 来完成语言环境敏感的排序。


参数:
str - 要比较的 String。
返回:
一个负整数、零或正整数,视指定的 String 大于、等于还是小于该 String 而定,不考虑大小写。
andylei79 2008-08-08
  • 打赏
  • 举报
回复
str1.compareTo(str2),结果如果小于零,则表示str1小于str2
hanbb 2008-08-08
  • 打赏
  • 举报
回复
直接比
zclc11 2008-08-08
  • 打赏
  • 举报
回复
27楼的方法不错
brtghtrd 2008-08-08
  • 打赏
  • 举报
回复
str1.compareTo(str2)
也可以直接比较
不过注意 B200可是大于B199999的

Sou2012 2008-08-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zidasine 的回复:]
str1.compareTo(str2)
[/Quote]
dadi5566 2008-08-08
  • 打赏
  • 举报
回复
haoxiongok 2008-08-08
  • 打赏
  • 举报
回复
compareTo
eddie17126 2008-08-07
  • 打赏
  • 举报
回复
同意楼上的
newtypebao 2008-08-07
  • 打赏
  • 举报
回复
String.compareTo(str)
原理就是比ASCII码
ahihihahahoho 2008-08-07
  • 打赏
  • 举报
回复
写错~
c=a.compareTo(d);
System.out.println(c);//1
c=a.compareTo(e);
System.out.println(c);//0
ahihihahahoho 2008-08-07
  • 打赏
  • 举报
回复
String a="b123";
String b="b124";
String d="b122";
String e="b123";
int c=a.compareTo(b);
System.out.println(c);//-1
c=a.compareTo(d);
System.out.println(c);//0
c=a.compareTo(e);
System.out.println(c);//1
loaferwang 2008-08-07
  • 打赏
  • 举报
回复
这个方法,也是最近听别人说的,也许还不错呀
imasmallbird 2008-08-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zidasine 的回复:]
str1.compareTo(str2)
[/Quote]
加载更多回复(21)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧