1.12

package com.example.demo;
import com.example.demo.fanyi.demo.TransApi;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DemoApplication {
private static final String APP_ID = "20241112002200111";
private static final String SECURITY_KEY = "cPTv3dW2os6zPO0fmuv4";

private static TransApi api = new TransApi(APP_ID, SECURITY_KEY);

//中译英
public static String zhToen(String q){
String result = api.getTransResult(q, "auto", "en");
int begin = result.indexOf("dst");
String en = result.substring(begin + 6, result.length() - 4);
// System.out.println(en);
return en;

}
//英译中
public static String enTozh(String q){
String result = api.getTransResult(q,"en","zh");
int begin = result.indexOf("dst");
String zh = result.substring(begin + 6, result.length() - 4);
// System.out.println(zh);
return convertUnicodeToCh(zh);
}

private static String convertUnicodeToCh(String str) {
Pattern pattern = Pattern.compile("(\\\\u(\\w{4}))");
Matcher matcher = pattern.matcher(str);

// 迭代,将str中的所有unicode转换为正常字符
while (matcher.find()) {
String unicodeFull = matcher.group(1); // 匹配出的每个字的unicode,比如\u67e5
String unicodeNum = matcher.group(2); // 匹配出每个字的数字,比如\u67e5,会匹配出67e5

// 将匹配出的数字按照16进制转换为10进制,转换为char类型,就是对应的正常字符了
char singleChar = (char) Integer.parseInt(unicodeNum, 16);

// 替换原始字符串中的unicode码
str = str.replace(unicodeFull, singleChar + "");
}
return str;
}
//测试
public static void main(String[] args) {
// 测试中译英
String chineseText = "你好,世界!";
String translatedToEnglish = zhToen(chineseText);
System.out.println("汉译英: " + translatedToEnglish);

// 测试英译中
String englishText = "Hello, world!";
String translatedToChinese = enTozh(englishText);
System.out.println("英译汉: " + translatedToChinese);

// 更多测试用例
String chineseText2 = "今天天气真好,我们去公园散步吧。";
String translatedToEnglish2 = zhToen(chineseText2);
System.out.println("汉译英: " + translatedToEnglish2);

String englishText2 = "The weather is nice today, let's go for a walk in the park.";
String translatedToChinese2 = enTozh(englishText2);
System.out.println("英译汉: " + translatedToChinese2);

// 特殊字符测试
String specialChars = "你好,世界!123 @#$%^&*()";
String translatedSpecialChars = zhToen(specialChars);
System.out.println("汉译英 (特殊字符): " + translatedSpecialChars);

// 长句子测试
String longSentence = "这是一个非常长的句子,用来测试翻译功能是否能够正确处理长文本。";
String translatedLongSentence = zhToen(longSentence);
System.out.println("汉译英 (长句子): " + translatedLongSentence);
}
}

posted @ 2025-01-12 20:16  catsahsy  阅读(24)  评论(0)    收藏  举报