java中两个字符串如何比较大小

有两个日期如20131011,20131030,类型为String,如何比较出20131030大于20131011,求java代码... 有两个日期 如20131011,20131030,类型为String,如何比较出20131030大于20131011,求java代码 展开
 我来答
happyWorkXiaoXu
推荐于2017-09-29 · TA获得超过614个赞
知道小有建树答主
回答量:313
采纳率:100%
帮助的人:144万
展开全部

有三种方法实现

第一种直接用字符串类的compareTo方法:

  String t1="20131011";
  String t2="20131030";
  int result = t1.compareTo(t2);

第二种是把这个日期字符串转换成long:

  SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
  Date d1 = sdf.parse(t1);
  Date d2 = sdf.parse(t2);
  long result = d1.getTime()-d2.getTime();

第三种是把日期字符串转换成整形int:

  int int1 = Integer.parseInt(t1);
  int int2 = Integer.parseInt(t2);
  int result = int1-int2;

注:result大于0,则t1>t2;

       result等于0,则t1=t2;

       result小于0,则t1<t2;

小傻

2018-07-30 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部
java字符串比较大小的话,你可以先转换成int或者double类型进行比较
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
763401802
推荐于2017-09-16 · TA获得超过504个赞
知道小有建树答主
回答量:319
采纳率:0%
帮助的人:124万
展开全部
使用 String.compareTo 方法:

compareTo() 的返回值是int, 它是先比较对应字符的大小(ASCII码顺序)
1、如果字符串相等返回值0
2、如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)(负值前字符串的值小于后字符串,正值前字符串大于后字符串)
3、如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度.

例:
String s1 = "abc";
String s2 = "abcd";
String s3 = "abcdfg";
String s4 = "1bcdfg";
String s5 = "cdfg";
System.out.println( s1.compareTo(s2) ); // -1 (前面相等,s1长度小1)
System.out.println( s1.compareTo(s3) ); // -3 (前面相等,s1长度小3)
System.out.println( s1.compareTo(s4) ); // 48 ("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48)
System.out.println( s1.compareTo(s5) ); // -2 ("a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小狂中E
2013-10-12 · TA获得超过1418个赞
知道大有可为答主
回答量:1514
采纳率:66%
帮助的人:1018万
展开全部
'20131011'.comapreTo('20131030')
返回1表示大于,返回0表示相等,返回-1表示小于
千万别把字符串转成啥日期或整数类型再比较,那会贼慢,循环1百万遍就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓝天下的智者
2013-10-11 · TA获得超过991个赞
知道小有建树答主
回答量:409
采纳率:100%
帮助的人:301万
展开全部
  1. 你确定你就是比较日期吗?如果单纯的是日期,那么你可以把它当做数字比较

  2. 如果是不确定的字符串,那么你是要比较什么呢?长度,还是首字母?问题要明确

追问
确定是日期,但是日期的类型是String
追答
int a=Integer.parseInt("20131030");
int b=Integer.parseInt("20131011");
if(a-b>0){
System.out.println("a>b");
}else if(a-b==0){
System.out.println("a=b");
}else{
System.out.println("b>a");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式