java 문자열 그룹 크기 정렬의 간단한 실현
문자열 비교 크기는 문자열 길이나 문자열 내 문자의 ASCII 코드 값을 비교할 수 있습니다. 전자가 너무 간단해서 설명을 하지 않습니다.
문자열은 ASCII 코드로 크기를 비교합니다. 규칙은 다음과 같습니다.
1. 이니셜의 ASCII 크기 비교
2. 앞의 알파벳이 같으면 뒤의 알파벳의 ASCII 코드 값을 비교한다
3. 만약에 한 문자열이 알파벳부터 다른 문자열을 포함한다면 문자열의 길이가 비교적 길다고 생각한다.예: abc > ab
비고: 코드에서commons-logging-1.2를 사용합니다.jar, 정렬 작은 것부터 큰 것까지
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
*
* @author panjianghong
* @since 2016/8/31
* */
public class StringSort {
private static final Log _log = LogFactory.getLog(StringSort.class);
/**
*
* @param keys
* @return
* */
public static String[] getUrlParam(String[] keys){
for (int i = 0; i < keys.length - 1; i++) {
for (int j = 0; j < keys.length - i -1; j++) {
String pre = keys[j];
String next = keys[j + 1];
if(isMoreThan(pre, next)){
String temp = pre;
keys[j] = next;
keys[j+1] = temp;
}
}
}
return keys;
}
/**
* , ASCII
* @param pre
* @param next
* @return
* */
private static boolean isMoreThan(String pre, String next){
if(null == pre || null == next || "".equals(pre) || "".equals(next)){
_log.error(" !");
return false;
}
char[] c_pre = pre.toCharArray();
char[] c_next = next.toCharArray();
int minSize = Math.min(c_pre.length, c_next.length);
for (int i = 0; i < minSize; i++) {
if((int)c_pre[i] > (int)c_next[i]){
return true;
}else if((int)c_pre[i] < (int)c_next[i]){
return false;
}
}
if(c_pre.length > c_next.length){
return true;
}
return false;
}
public static void main(String[] args) {
String[] keys = getUrlParam(new String[]{"fin","abc","shidema","shide","bushi"});
for (String key : keys) {
System.out.println(key);
}
}
}
콘솔 인쇄 결과:abc
bushi
fin
shide
shidema
이상의 이 자바 문자열 수조가 크기 정렬을 하는 간단한 실현은 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.