真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java之String類的compareTo方法怎么用

這篇文章給大家分享的是有關(guān)java之String類的compareTo方法怎么用的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

公司主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè)、網(wǎng)站制作、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出蘇仙免費(fèi)做網(wǎng)站回饋大家。

 先放上源碼

public int compareTo(String anotherString) {
 int len1 = value.length;
 int len2 = anotherString.value.length;
 int lim = Math.min(len1, len2);
 char v1[] = value;
 char v2[] = anotherString.value;

 int k = 0;
 while (k < lim) {
  char c1 = v1[k];
  char c2 = v2[k];
  if (c1 != c2) {
  return c1 - c2;
  }
  k++;
 }
 return len1 - len2;
 }

下面的是我自己寫(xiě)的山寨compareTo()方法, 經(jīng)測(cè)試, 結(jié)果與compareTo(String otherString)返回一致

說(shuō)明:

1. 為避免沖突, 我定義的方法名為compares

2. 注釋中已經(jīng)詳細(xì)地記錄了分析思路, 故對(duì)代碼不做過(guò)多說(shuō)明

public class StringDemo {
 
 @Test
 public void test() {
 
 // 因?yàn)閛的ASCII碼為: 111
 // 因?yàn)閍的ASCII碼為: 97
 // 所以差為 : 111 - 97 = 14
 // 返回值為:14, 與compareTo返回結(jié)果一致
 System.out.println(compares("hellojava", "hellajava"));
 }
 
 public static int compares(String firstString, String lastString) {
  /*
  * 算法思路分析: 
  * 1. 獲取2個(gè)字符串, 首先把2個(gè)字符串都轉(zhuǎn)化為字符數(shù)組 (為后面一個(gè)一個(gè)字符進(jìn)行比較做鋪墊)
  * 2. 獲取2個(gè)字符串的長(zhǎng)度, 并把最短的字符串長(zhǎng)度作為循環(huán)的次數(shù) (這樣可以避免數(shù)組越界的異常)
  * 3. 把2個(gè)字符串從0開(kāi)始遍歷, 比較每一個(gè)字符, 若字符不相等時(shí), 則返回兩個(gè)字符串的差值
  * 4. 如果遍歷的字符串都相等時(shí), 則返回兩個(gè)字符串的長(zhǎng)度差
  * 
  * 方法結(jié)果: 
  * 1. 若兩個(gè)字符串長(zhǎng)度和字符都相等時(shí), 則返回0
  * 2. 若兩個(gè)字符長(zhǎng)度不相等, 但大串完全包含(順序和字符都相等)小串字符時(shí), 則返回兩個(gè)字符串的長(zhǎng)度的差值
  *  舉例: 
  *  大串: helloworlds
  *  小串: helloworld
  *  因?yàn)榇蟠耆〈? 所以返回長(zhǎng)度的差值, 為1
  * 3. 若兩個(gè)字符串長(zhǎng)度和字符都不相等時(shí), 則返回比較過(guò)程中, 某個(gè)索引位置上的字符之差
  *  舉例: 
  *  串1: hellojavas
  *  串2: hellajava
  *  遍歷比較后, 索引4的字符不同, 所以返回兩個(gè)字符的差值14, 'o' - 'a' = 14
  */
  
  /*
  * 1. 獲取2個(gè)字符串, 首先把2個(gè)字符串都轉(zhuǎn)化為字符數(shù)組 (為后面一個(gè)一個(gè)字符進(jìn)行比較做鋪墊)
  */
  char[] firstCh = firstString.toCharArray();
  char[] lastCh = lastString.toCharArray();
  
  /*
  * 2. 獲取2個(gè)字符串的長(zhǎng)度, 并把最短的字符串長(zhǎng)度作為循環(huán)的次數(shù) (這樣可以避免數(shù)組越界的異常)
  */
  int firstLength = firstCh.length;
  int lastLength = lastCh.length;
  int lim = Math.min(firstLength, lastLength);
  
  // 用k記錄比較的索引
  int k = 0;
  while(k < lim) {
  char c1 = firstCh[k];
  char c2 = lastCh[k];
  
  // 3. 把2個(gè)字符串從0開(kāi)始遍歷, 比較每一個(gè)字符, 若字符不相等時(shí), 則返回兩個(gè)字符串的差值
  if(c1 != c2) {
   return c1 - c2;
  }
  
  // 如果字符相等, 則讓索引加1
  k++;
  }
  
  // 4. 如果遍歷的字符串都相等時(shí), 則返回兩個(gè)字符串的長(zhǎng)度差
  return firstLength - lastLength;
 }
}

感謝各位的閱讀!關(guān)于“java之String類的compareTo方法怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


新聞名稱:java之String類的compareTo方法怎么用
鏈接URL:http://weahome.cn/article/gchcho.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部