이모 티 콘 자바 코드 에서 처리 api

2960 단어 작은 기술 점
클 라 이언 트 제출 에 이모 티 콘 이 있 는 문자열 은 일반적으로 다음 과 같이 처 리 됩 니 다.      
주: 글 의 모든 표 와 인 코딩 이 대응 하지 않 습 니 다. 원인: eclipse 에서 편집 한 표정 은 이 곳 에서 정상적으로 표시 되 지 않 습 니 다. 모든 것 은 현재 편집기 의 표정 을 마음대로 사용 합 니 다.
         (이모 티 콘 문자열 예. 클 라 이언 트 가 server 에 제출 한 데 이 터 는 String 변 수 를 사용 하여 받 은 값 입 니 다. 일반 utf 8 인 코딩 )
1. 문자열 이 표정 인지 판단
2. 문자열 의 모든 이모 티 콘 문자열 가 져 오기 혹시 모든 비 표정 문자열
3. 이모 티 콘 문자열 을 HtmlDecimal  예: ->    ;#128516;
4. 이모 티 콘 문자열 을 Hexadecimal  예: ->  ;#x1f466;
5 、 이모 티 콘 문자열 을 유 니 코드 로 변환
6、  (3, 4, 5) 의 반전
7. 표정 의미 분석
해결 방향:
1. 이모 티 콘 이모 티 콘, html Decimal 이 필요 합 니 다. 、 hexadecimal, 의미 맵
2, 데이터 테이블, 나머지 는 API 의 처리, O (∩ ∩) O 하하 ~
마침 github 에 이 jar 패키지 와 데이터 가 있 습 니 다. 
 com.vdurmont emoji-java 3.1.3
이 jar 가방 에 emojis. json 파일 이 있 습 니 다. 위 에서 언급 한 맵 입 니 다. 구 조 는 다음 과 같다.
{     "emoji": "",     "description": "smiling face with open mouth and smiling eyes",     "aliases": [       "smile"     ],     "tags": [       "happy",       "joy",       "pleased"     ]   },  ............
json 데이터 에 의미 와 태그 가 있 는 것 을 볼 수 있 습 니 다. ,HtmlDecimal  화해시키다 Hexadecimal   EmojiLoader:: loadEmojis 분석 을 통 해 (jar 패키지 에 총 6 개의 자바 파일 이 있 음)
질문 EmojiParser  ,  EmojiManager  대응 하 는 함 수 를 찾 을 수 있 습 니 다. 
소스 코드 나... https://github.com/vdurmont/emoji-java  
질문
	public static String getUnicode(String source){
		 String returnUniCode=null;
		 String uniCodeTemp=null;
		 for(int i=0;i

문제 2 는 자기가 그때... EmojiParser  중 확 장 된 두 함수 다음 과 같다.
/**
   *         
   * @param input
   * @return
   */
  public static String getNonEmojiString(String input) {
	    int prev = 0;
	    StringBuilder sb = new StringBuilder();
	    List replacements = getUnicodeCandidates(input);
	    for (UnicodeCandidate candidate : replacements) {
	      sb.append(input.substring(prev, candidate.getEmojiStartIndex()));
	      prev = candidate.getFitzpatrickEndIndex();
	    }
	    return sb.append(input.substring(prev)).toString();
  }
  
  /**
   *        
   * @param input
   * @return
   */
  public static String getEmojiUnicodeString(String input){
	    EmojiTransformer  transformer = new EmojiTransformer() {
	      public String transform(UnicodeCandidate unicodeCandidate) {
	           return unicodeCandidate.getEmoji().getHtmlHexadecimal();
	      }
	    };
	    StringBuilder sb = new StringBuilder();
	    List replacements = getUnicodeCandidates(input);
	    for (UnicodeCandidate candidate : replacements) {
	      sb.append(transformer.transform(candidate));
	    }
	    return  parseToUnicode(sb.toString());
  }

다음 테스트 실행:
String str = "aaaa

좋은 웹페이지 즐겨찾기