java 中字符串 怎么比较大小 比如 B234 和B235怎么比较他们的大小?也就是说随便的两个字符串大小怎么比较???? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public class TestCompareTo { public static void main (String args[]){ String str1 = "B234"; String str2 = "B235"; System.out.print(str2.compareTo(str1)); }}1 直接的'B235'>'B234' 是按照字符串从左到右1位1位的按照ASKII码来比较的,只要是按顺序有一位比出了大小就是结果 String a="b123";String b="b124";String d="b122";String e="b123";int c=a.compareTo(b);System.out.println(c);//-1c=a.compareTo(d);System.out.println(c);//0c=a.compareTo(e);System.out.println(c);//1 写错~c=a.compareTo(d); System.out.println(c);//1 c=a.compareTo(e); System.out.println(c);//0 String.compareTo(str)原理就是比ASCII码 十六进制表示分别为:0x7F, 0x5E, 0xDE, 0x5D以上是“广州”两个字的十六进制表示,请问“广州”这两个字的具体编码是什么?不是unicode编码,也不是utf8编码。也不是ascii编码。那到底是什么编码? ============我是从一个exe文件中获取的,该exe是vb编译的。 十六进制表示分别为:0x7F, 0x5E, 0xDE, 0x5D以上是“广州”两个字的十六进制表示,请问“广州”这两个字的具体编码是什么?不是unicode编码,也不是utf8编码。也不是ascii编码。那到底是什么编码? ============我是从一个exe文件中获取的,该exe是vb编译的。 public class Bijiao { public static void main (String args[]){ String str1 = "B234"; String str2 = "B235"; System.out.print(str2.compareTo(str1)); }} public class Test{ public static void main(String[] args){ String s ="B234"; String s1="B235"; System.out.println(s1.compareTo(s));}} str1.compareTo(str2)也可以直接比较不过注意 B200可是大于B199999的 str1.compareTo(str2),结果如果小于零,则表示str1小于str2 compareToIgnoreCase这个方法也行呀,我试过啦,结果一样呀!compareTopublic 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 的值。--------------------------------------------------------------------------------compareToIgnoreCasepublic int compareToIgnoreCase(String str)不考虑大小写,按字典顺序比较两个字符串。此方法返回一个整数,它的正负号是调用 compareTo 的正负号,调用时使用了字符串的规范化版本,其大小写差异已通过对每个字符调用 Character.toLowerCase(Character.toUpperCase(character)) 得以消除。 注意,此方法不 考虑语言环境,因此可能在某些特定的语言环境中产生不理想的排序。java.text 包提供 Collators 来完成语言环境敏感的排序。 参数:str - 要比较的 String。 返回:一个负整数、零或正整数,视指定的 String 大于、等于还是小于该 String 而定,不考虑大小写。 关于Swing中重启功能的实现,还请高手支招。 如何用Java实现Ping(思路) 初学java 高手请听题:JSP出错页面中什么时候出现“ROOT CAUSE”? 有关XMLGUI的教程或者API文章,急求,谢谢 一个算法问题 如何在JBUILDER下安JDK1.5啊???? 请教几个问题 求JAVA程序 关于JAVA继承 List问题 能否将String值作为语句执行
public static void main (String args[]){
String str1 = "B234";
String str2 = "B235";
System.out.print(str2.compareTo(str1));
}
}1
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
c=a.compareTo(d);
System.out.println(c);//1
c=a.compareTo(e);
System.out.println(c);//0
原理就是比ASCII码
以上是“广州”两个字的十六进制表示,请问“广州”这两个字的具体编码是什么?不是unicode编码,也不是utf8编码。也不是ascii编码。那到底是什么编码?
============
我是从一个exe文件中获取的,该exe是vb编译的。
以上是“广州”两个字的十六进制表示,请问“广州”这两个字的具体编码是什么?不是unicode编码,也不是utf8编码。也不是ascii编码。那到底是什么编码?
============
我是从一个exe文件中获取的,该exe是vb编译的。
public static void main (String args[]){
String str1 = "B234";
String str2 = "B235";
System.out.print(str2.compareTo(str1));
}
}
public static void main(String[] args){
String s ="B234";
String s1="B235";
System.out.println(s1.compareTo(s));
}
}
也可以直接比较
不过注意 B200可是大于B199999的
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 而定,不考虑大小写。