中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java之String類的compareTo方法怎么用

發布時間:2021-08-25 15:40:11 來源:億速云 閱讀:115 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關java之String類的compareTo方法怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

 先放上源碼

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;
 }

下面的是我自己寫的山寨compareTo()方法, 經測試, 結果與compareTo(String otherString)返回一致

說明:

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

2. 注釋中已經詳細地記錄了分析思路, 故對代碼不做過多說明

public class StringDemo {
 
 @Test
 public void test() {
 
 // 因為o的ASCII碼為: 111
 // 因為a的ASCII碼為: 97
 // 所以差為 : 111 - 97 = 14
 // 返回值為:14, 與compareTo返回結果一致
 System.out.println(compares("hellojava", "hellajava"));
 }
 
 public static int compares(String firstString, String lastString) {
  /*
  * 算法思路分析: 
  * 1. 獲取2個字符串, 首先把2個字符串都轉化為字符數組 (為后面一個一個字符進行比較做鋪墊)
  * 2. 獲取2個字符串的長度, 并把最短的字符串長度作為循環的次數 (這樣可以避免數組越界的異常)
  * 3. 把2個字符串從0開始遍歷, 比較每一個字符, 若字符不相等時, 則返回兩個字符串的差值
  * 4. 如果遍歷的字符串都相等時, 則返回兩個字符串的長度差
  * 
  * 方法結果: 
  * 1. 若兩個字符串長度和字符都相等時, 則返回0
  * 2. 若兩個字符長度不相等, 但大串完全包含(順序和字符都相等)小串字符時, 則返回兩個字符串的長度的差值
  *  舉例: 
  *  大串: helloworlds
  *  小串: helloworld
  *  因為大串完全包含小串, 所以返回長度的差值, 為1
  * 3. 若兩個字符串長度和字符都不相等時, 則返回比較過程中, 某個索引位置上的字符之差
  *  舉例: 
  *  串1: hellojavas
  *  串2: hellajava
  *  遍歷比較后, 索引4的字符不同, 所以返回兩個字符的差值14, 'o' - 'a' = 14
  */
  
  /*
  * 1. 獲取2個字符串, 首先把2個字符串都轉化為字符數組 (為后面一個一個字符進行比較做鋪墊)
  */
  char[] firstCh = firstString.toCharArray();
  char[] lastCh = lastString.toCharArray();
  
  /*
  * 2. 獲取2個字符串的長度, 并把最短的字符串長度作為循環的次數 (這樣可以避免數組越界的異常)
  */
  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個字符串從0開始遍歷, 比較每一個字符, 若字符不相等時, 則返回兩個字符串的差值
  if(c1 != c2) {
   return c1 - c2;
  }
  
  // 如果字符相等, 則讓索引加1
  k++;
  }
  
  // 4. 如果遍歷的字符串都相等時, 則返回兩個字符串的長度差
  return firstLength - lastLength;
 }
}

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

固原市| 鹤山市| 南皮县| 凯里市| 湟中县| 华蓥市| 隆回县| 图木舒克市| 郑州市| 通州区| 普兰店市| 涟源市| 元谋县| 本溪市| 宿松县| 浪卡子县| 汽车| 库车县| 安新县| 淮安市| 新沂市| 宝坻区| 扶风县| 双桥区| 确山县| 交城县| 甘德县| 萍乡市| 偏关县| 林周县| 普兰店市| 杂多县| 奉化市| 米脂县| 庆元县| 玉龙| 顺昌县| 永善县| 包头市| 宾阳县| 吴堡县|