자바 실전 도시 다 음 자 처리

수요
도시 이름 을 병 음 으로 바 꿀 때 다 음 자 도 시 를 만 났 을 때 병 음 으로 바 꾸 는 것 은 우리 가 원 하 는 것 이 아니다.
쓰다  pinyin4j 는 이 문 제 를 직접 해결 할 수 없다.인터넷 에는 다 음 자 정 보 를 유지 하 는 사람들 이 많아 서 번거롭다.
예:

   ====>"zhangsha"  
  ===>"shamen"  
  ===>"zhongqing"
jpinyin 가 져 오기
버 전 선택

<!-- https://mvnrepository.com/artifact/com.github.stuxuhai/jpinyin -->
        <dependency>
            <groupId>com.github.stuxuhai</groupId>
            <artifactId>jpinyin</artifactId>
            <version>1.1.8</version>
        </dependency>
3.도구 클래스 직접 만 들 기(다른 작업 필요 없 음)

import com.github.stuxuhai.jpinyin.ChineseHelper;
import com.github.stuxuhai.jpinyin.PinyinFormat;
import com.github.stuxuhai.jpinyin.PinyinHelper;
 
/**
 * @Description:
 * @Date: 2021/4/27 16:26
 * @Author: luch
 * @Version: 1.0
 **/
public class ChangeToPinYinJPinYin {
 
 
    /**
     *             
     *
     * @param pinYinStr   
     * @return          
     */
    public static String changeToMarkPinYin(String pinYinStr) {
 
        String tempStr = null;
 
        try {
            tempStr = PinyinHelper.convertToPinyinString(pinYinStr, " ", PinyinFormat.WITH_TONE_MARK);
 
        } catch (Exception e) {
            e.printStackTrace();
        }
        return tempStr;
 
    }
 
 
    /**
     *           
     *
     * @param pinYinStr       
     * @return           
     */
    public static String changeToNumberPinYin(String pinYinStr) {
 
        String tempStr = null;
 
        try {
            tempStr = PinyinHelper.convertToPinyinString(pinYinStr, " ", PinyinFormat.WITH_TONE_NUMBER);
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return tempStr;
 
    }
 
    /**
     *              
     *
     * @param pinYinStr       
     * @return      
     */
    public static String changeToTonePinYin(String pinYinStr) {
 
        String tempStr = null;
 
        try {
            tempStr = PinyinHelper.convertToPinyinString(pinYinStr, "", PinyinFormat.WITHOUT_TONE);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return tempStr;
 
    }
 
    /**
     *                  
     *
     * @param pinYinStr       
     * @return      
     */
    public static String changeToGetShortPinYin(String pinYinStr) {
 
        String tempStr = null;
 
        try {
            tempStr = PinyinHelper.getShortPinyin(pinYinStr);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return tempStr;
 
    }
 
    /**
     *           
     *
     * @param pinYinStr       
     * @return true    ,false      
     */
    public static boolean checkPinYin(char pinYinStr) {
 
        boolean check = false;
        try {
            check = PinyinHelper.hasMultiPinyin(pinYinStr);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return check;
    }
 
    /**
     *        
     *
     * @param pinYinStr
     * @return
     */
    public static String changeToTraditional(String pinYinStr) {
 
        String tempStr = null;
        try {
            tempStr = ChineseHelper.convertToTraditionalChinese(pinYinStr);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return tempStr;
 
    }
 
    /**
     *        
     *
     * @param pinYinSt
     * @return
     */
    public static String changeToSimplified(String pinYinSt) {
 
        String tempStr = null;
 
        try {
            tempStr = ChineseHelper.convertToSimplifiedChinese(pinYinSt);
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return tempStr;
 
    }
 
 
 
}
4.직접 테스트 코드

public static void main(String[] args) {
        String str = "   ";
        System.out.println("            :"+changeToMarkPinYin(str));
        System.out.println("             :"+changeToTonePinYin(str));
 
        String strFanTi="l   T";
        System.out.println("       :"+changeToSimplified(strFanTi));
        System.out.println(" "+"       :"+checkPinYin(' '));
        System.out.println(" "+"      :"+checkPinYin(' '));
        System.out.println(" "+"      :"+checkPinYin(' '));
    }
출력 결과,아래 다른 글자 의 중간 에 빈 칸 이 있 는 지,이것 은 스스로 설정 할 수 있 습 니 다.

5.소스 코드 분석
5.1 사전 대응 정보
위 에서 아래로 각각
1.번 체-간 체 대응 표
2.다 음 자
3.음표 가 달 린 병 음

5.26 개 처리 클래스

5.3 처리 모드
켜다

com.github.stuxuhai.jpinyin.PinyinResource#getPinyinResource
이 몇 개의 자원 을 각각 불 러 오 는 세 가지 방법 이 있다.

그리고 통과.

com.github.stuxuhai.jpinyin.ChineseHelper 
 키 값 을 통 해 가 져 옵 니 다.로드 처리 일 뿐 입 니 다.

자바 실전 의 도시 다 음 자 처리 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 도시 다 음 자 처리 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기