如题,如何比较了两个字符串大小  比如A=“20080101”   B=“20080808”   则B>A

解决方案 »

  1.   

    可以先将字符串转为Long型 直接比较就可以了吧
      

  2.   

    public static void main(String[] args)
    {
    System.out.println("aaa".compareTo("tttttt"));
    }用.compareTo()返回的是负数表示前面比后边的小.
      

  3.   

    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 的值。
      

  4.   

    System.out.println(A.compareTo(B)); 
    或者你自己重写compareTo方法
      

  5.   

    if( A.compareTo(B)>0){
       System.out.println("A大于B");}
    if(A.compareTo(B)<0){
            System.out.println("A小于于B");}
      

  6.   

    还有一种方法就是转换为日期import java.util.Date;public class CountDay {
        public long countDay(String Endday1,String Beginday2){
        
            String t1 = Endday1.replace('-','/'); 
            String t2 = Beginday2.replace('-','/'); 
            long b = 0L;
            long a = 0L;
            try{  
                Date dt1= new Date(t1); 
                Date dt2= new Date(t2); 
              //  System.out.println("dt1="+dt1.getTime()); 
              //  System.out.println("dt2="+dt2.getTime()); 
                 a = dt1.getTime() - dt2.getTime(); 
                 b = a/60/60/1000/24;
            
            }catch(Exception e){ 
                System.out.println("exception"+e.toString()); 
            } 
         return b;
        }
    }
    当b为负数时,A>B 否则 A<B
      

  7.   

    我上面日期格式 为"2008-08-08" 转换为"2008/08/08"  
    你可以注释掉String t1 = Endday1.replace('-','/'); 
                String t2 = Beginday2.replace('-','/'); 
      

  8.   

    好像不可以的吧
    这个默认是比较首字符的ASCII吗的差值
    一般要重写这个方法的
    实现Comparable <T>接口的对象都可以重写的
    LZ可以根据自己的需要重写的
      

  9.   

    C的经典做法, 修改一下就行:
    int compare(const char *str1, const char *str2) {
        assert(str1 != NULL && str2 != NULL);
        
        while ((*str1 !='\0') && (*str2 != '\0') && (*str1 == *str2)) {
            ++str1;
            ++str2;
        }
        
        return *str1 - *str2;
    }
      

  10.   

    String   strDate1   =   "2002-11-12";     
      String   strDate2   =   "2003-11-12";   
      Date   date1   =   DateFormat.parse(strDate1);   
      Date   date2   =   DateFormat.parse(strDate2);   
      int   iResult   =   date1   .compareTo(date2);   
      if(iResult   ==   0){   
      //equal   
      }   
      else   if(iResult   <   0){   
      //date1   is   less     than   date2   
      }   
      else   if(iResult   >0){   
      //date1   is   greater   than   date2   
      }我觉得楼主可能是想比较日期吧,,,看看这个吧
      

  11.   

      private int compDate(String fDate,String tDate ){
            int result=0;
             SimpleDateFormat sdf=new SimpleDateFormat( "yyyyMMdd"); 
             try {
                  Date   startDate=sdf.parse(fDate);
                  Date   endDate=sdf.parse(tDate);
                  result= startDate.compareTo(endDate);   
             }
             catch (ParseException e) {
            
                 e.printStackTrace();
             } 
          
             return result;     
         }
      

  12.   

    同意使用JAVA API中的方法compareTo,还可转化为Integer、Long型进行比较
      

  13.   

    嗯,还是这个好
    但是到Java了,直接compareTo就可以了(很简单很傻瓜)。