문자열 정렬 및 통계
package com.heima.question7;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
public class StringStatictis {
@Test
public void test(){
String originalString = "abadcdffbaeba";
String resultString = stringStatictis(originalString);
String expectedString = "c:1,e:1,d:2,f:2,b:3,a:4";
assertEquals(expectedString,resultString);
}
public static void main(String[] args){
String originalString = "abadcdffbaeba";
String resultString = stringStatictis(originalString);
String expectedString = "c:1,e:1,d:2,f:2,b:3,a:4";
System.out.println(resultString);
}
@SuppressWarnings("unchecked")
public static String stringStatictis(String originalString){
char[] charArray = originalString.toCharArray();
List<Character> list = new ArrayList<Character>();
for(char c : charArray){
list.add(c);
}
/**
* Map ,key ,value
*/
Map<Character,Integer> map = new HashMap<Character,Integer>();
/**
* list , key list key , , list ,
* , key value 1
*/
while(list.size()>0){
char key = list.remove(0);
Integer value = 1 ;
int newListSize = list.size();
int j=0;
for(int i=0;i<newListSize;i++){
if(key==list.get(j)){
list.remove(j);
value++;
}else{
j++;
}
}
map.put(key, value);
}
List sortList = new ArrayList(map.entrySet());
/**
* sortList :
* 1. ,
* 2. ,
*/
Collections.sort(sortList,new Comparator(){
@Override
public int compare(Object o1, Object o2) {
Map.Entry obj1 = (Map.Entry) o1;
Map.Entry obj2 = (Map.Entry) o2;
if((Integer)obj1.getValue()==(Integer)obj2.getValue()){
return (Character)obj1.getKey() - (Character)obj2.getKey();
}else{
return (Integer)obj1.getValue()-(Integer)obj2.getValue();
}
}
});
StringBuilder sb = new StringBuilder();
for(Object obj:sortList){
Map.Entry entry = (Map.Entry)obj;
sb.append(entry.getKey()+":"+entry.getValue()+",");
}
sb.deleteCharAt(sb.length()-1);
return sb.toString();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.