Java中字串的拼接問題
阿新 • • 發佈:2019-01-04
1.在Java中 比較兩個字串的大小 使用 str1.compareTo(Str2);對於其中compareTo的方法 按照ASCII碼的順序比較:
檢視其中的原始碼如下: compareTo()方法 事實上我們按照這種方式重寫其中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; }
對於字串陣列中字串 拼接 比較 str1+str2 Vs str2+str1 對陣列字串進行排序 ,排序之後進行拼接:
package com.offer; import java.util.Arrays; import java.util.Comparator; public class Prioir { public static void main(String [] args) { String[] strs={"b","ba"}; System.out.println(findSmallest(strs,2)); } public static String findSmallest(String[] strs,int n) { if(strs==null || n<=0) return null; // 比較的是str1+str2 Vs str2+str1 Arrays.sort(strs,new Comparator<String>(){ @Override public int compare(String o1, String o2) { String str1=o1+o2; String str2=o2+o1; return str1.compareTo(str2); }}); StringBuffer sb=new StringBuffer(); for(int i=0;i<n;i++) sb.append(strs[i]); return sb.toString(); } }