Rmb.java
public class Rmb { /** *Informações básicas e operações de RMB*@author weinee *@versão 1.0 */ double number; //Quantidade de RMB private String[] hanArr = {"zero", "一", "二" , "三", "四", "五", "鲁", "旒", "八", "九" };//símbolos de contagem de caracteres chineses private String[] unitArr = {"", "十", "百", "千"};//Unidade de contagem de caracteres chineses private String[] unitArrs = {"万", "Billion", "万", "十大", "万" , " "Billion", "Wan", "Yuan"}; //Adiciona unidades sequencialmente//private String[] unidadesArr = {"Wan", "Billion"}; //A unidade grande para contar caracteres chineses public Rmb( ){} /** *O construtor inicializa a quantidade de RMB*@param O número RMB de inicialização fornecido*/ public Rmb(double number){ this.number = number } /** *Decompõe um número de ponto flutuante em uma parte longa e uma string de parte decimal, O RMB é substituído por um número inteiro Há um erro no valor crítico do número de ponto flutuante ao obter a parte decimal*@return Retorna a matriz de string decomposta. O primeiro elemento da matriz é a parte inteira e o segundo é a parte decimal. string*/ string pública [] divideNum(){ double num = Math.round(number*100);//arredondar o número para inteiro long inteiroPart = (long)num //Transformar as duas casas decimais em um inteiro para evitar o uso de subtração //double decimalsPart = num; -integerPart;//A parte decimal, ocorre um erro quando crítico String decimalsPartStr; long b = integerPart % 10; (integerPart/10) % 10; //O primeiro dígito após o ponto decimal integerPart /= 100; ; } return new String[] {String.valueOf(integerPart), decimalsPartStr} } /** *Converter um caractere numérico em pronúncia de RMB chinês*@return Retorna a forma de string da pronúncia do RMB chinês*/ public String toHanStr(){ String[] results = new String[9] //Usado para armazenar temporariamente a string numérica String[] dividida em quatro dígitos a cada quatro dígitos resultStrs = new; String[9];//Usado para armazenar temporariamente a leitura RMB convertida após cada segmentação de quatro dígitos String result = "";//O resultado final da conversão String[] divideStr = divideNum(); //Obtém a parte longa e a string da parte decimal em que o número de ponto flutuante é decomposto. O primeiro elemento da matriz é a string da parte inteira e o segundo é a string da parte decimal results[8] = divideStr[1] for (int i =divideStr[0].comprimento(), j=8; , eu); }catch(Exceção e){ resultados[j-1] = divideStr[0].substring(0, i); if(resultados[8] == nulo){ resultadoStrs[8] = "inteiro"; }else if(resultados[8].charAt(1) == '0'){ resultStrs[8] = hanArr[resultados[8].charAt(0) - 48] + "角"; //Muda os números para letras maiúsculas em chinês de acordo com o código ASCII e o array hanArr}else{ resultStrs[8] = hanArr[results[8].charAt(0) - 48] + "角" + hanArr[resultados[8].charAt(1) - 48] + "ponto" } for(int i=0; i<8; i++){ if(resultados[i] != null){ resultStrs[i] = ""; resultStrs[i] += hanArr[resultados[i].charAt(0) - 48] + unitArr[resultados[i].length() - 1]; //Selecione a unidade numérica com base no código ASCII e no comprimento do array for (int j=1; j<results[i].length(); j++ ) if(resultados[i].charAt(j-1) == '0' && resultados[i].charAt(j) != '0') resultStrs[i] += "zero" + hanArr[resultados[i ].charAt(j) - 48] + unitArr[resultados[i].length() - 1 - j]; //Selecione a unidade numérica com base no código ASCII e no comprimento da matriz else if(results[i].charAt(j) != '0' ) resultStrs[i] += hanArr[results[i].charAt(j) - 48] + unitArr[resultados[i].length() - 1 - j] } } for (int i=0; i<8; i++ ){ if(resultStrs[i] != null){ resultado += resultadoStrs[i] + unitArrs[i] } resultado += resultadoStrs[8];RmbTest.java
public class RmbTest{ public static void main(String[] args) { double l; bye = new byte[50]; { System .in.read(bye); }catch(Exception e){} String s = new String(bye); s = r.toHanStr(); System.out.println(s);O texto acima é todo o conteúdo deste artigo. Espero que seja útil para todos que estão aprendendo Java.