百度翻译器在线(百度翻译器拍照官网)
//
baiduu翻译 java 版
// new一个字符数组,这个就是用来组成结果字符串的(解释一下:一个byte是八位二进制,也就是2位十六进制字符(2的8次方等于16的2次方))
System.out.println(translate(&34;我的&34;));
try {
System.out.println(body);
if (input == null)
} catch (IOException | InterruptedException e) {
.add(&34;sign=&34; + sign)
String sign = md5(str1);
.add(&34;q=&34; + q)
.add(&34;appid=&34; + appId)
import lombok.experimental.Accessors;
resultCharArray[index++] = hexDigits[b & 0xf];
BoxMain.java
// 输入的字符串转换成字节数组
}
import java.security.MessageDigest;
import lombok.experimental.Accessors;
private String from;
});
private String dst;
private static String byteArrayToHex(byte[] byteArray) {
btn.setOnMouseClicked(e -> {
}
public class BaiduTranslate {
MessageDigest messageDigest = MessageDigest.getInstance(&34;MD5&34;);
// fx的多线程 ,
}
System.out.println(url);
static String token = &34;替换为你的密钥&34;;
import java.net.http.HttpRequest;
for (byte b : byteArray) {
static String appId = &34;替换为你的appId&34;;
*
.add(&34;salt=&34; + salt)
private String src;
String trans = BaiduTranslate.translate(text);
} else {
import java.time.LocalDate;
} catch (NoSuchAlgorithmException e) {
parent.getChildren().add(new VBox(label,btn, output));
}
return byteArrayToHex(resultByteArray);
if (isBlank(text)) {
BaiduRoot baiduu = JsonKit.toBean(body, BaiduRoot.class);
messageDigest.update(inputByteArray);
}
import lombok.Data;
.POST(HttpRequest.BodyPublishers.ofString(&34;a&34;))
label.setFont(Font.font(&34;微软雅黑&34;, 24));
import java.security.NoSuchAlgorithmException;
public static String md5(String input) {
Platform.runLater(() -> {
import java.util.StringJoiner;
/**
}
throw new RuntimeException(e);
}
public class BaiduRoot {
// inputByteArray是输入字符串转换得到的字节数组
HttpRequest request = HttpRequest.newBuilder()
public static String translate(String q) {
import dev.guu.kit.string.StringKit;
import java.io.IOException;
}
@Data
// 转换并返回结果,也是字节数组,包含16个元素
}
* @param input 输入的字符串
package dev.guu.fx.translate.box.baiduu;
byte[] inputByteArray = input.getBytes(StandardCharsets.UTF_8);
;
&39;e&39;, &39;f&39;};
return null;
.uri(URI.create(url)).build();
}
import dev.guu.kit.string.JsonKit;
byte[] resultByteArray = messageDigest.digest();
// 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”)
char[] resultCharArray = new char[byteArray.length * 2];
import lombok.Data;
百度翻译同样需要申请 key
output.setText(&34;翻译中...&34;);
@Data
private BaiduTransResult[] trans_result;
为了方便阅读,翻译结果创建 model
@Data
import lombok.Data;
private void createBaidu(HBox parent) {
* 获得一个字符串的MD5值
import java.nio.charset.StandardCharsets;
* @return 输入字符串的MD5值
createYoudao(box);
output.setText(trans);
root.getChildren().add(box);
return new String(resultCharArray);
output.setEditable(false);
private String to;
private void createOutput(Pane root) {
import java.net.http.HttpClient;
.setHeader(&34;Content-type&34;, &34;application/json&34;)
TextArea output = new TextArea();
import java.net.URI;
sj.add(&34;from=&34; + (en ? &34;en&34; : &34;zh&34;))
private static final char[] hexDigits = {&39;0&39;, &39;1&39;, &39;2&39;, &39;3&39;, &39;4&39;, &39;5&39;, &39;6&39;, &39;7&39;, &39;8&39;, &39;9&39;, &39;a&39;, &39;b&39;, &39;c&39;, &39;d&39;,
createBaidu(box);
@Accessors(chain = true)
static String salt = LocalDate.now().toString();
HttpClient client = HttpClient.newHttpClient();
int index = 0;
try {
import lombok.experimental.Accessors;
*/
程序输出区域添加百度翻译相关显示
}
public static void main(String[] args) {
// 字符数组组合成字符串返回
// 字符数组转换成字符串返回
output.setText(&34;请输入&34;);
public class BaiduTransResult {
String body = send.body();
url += sj.toString();
package dev.guu.fx.translate.box.baiduu;
});
boolean en = StringKit.isEn(q);
return JsonKit.toJsonFormat(baiduu);
StringJoiner sj = new StringJoiner(&34;&&34;);
添加百度翻译额外内容:程序添加图标开发习惯:先完成功能,在功能确定之后,再去优化代码
.add(&34;to=&34; + (en ? &34;zh&34; : &34;en&34;))
resultCharArray[index++] = hexDigits[b >>> 4 & 0xf];
import java.net.http.HttpResponse;
Button btn = new Button(&34;翻译&34;);
package dev.guu.fx.translate.box.baiduu;
return null;
}
String text = inputTextArea.getText();
百度翻译开放平台 (baiduu.com) 翻译参考文档(有java版demo 代码) :http://fanyi-api.baiduu.com/origin/doc/21
Label label = new Label(&34;百度翻译:&34;);
String url = &34;http://fanyi-api.baiduu.com/origin/api/trans/vip/translate?&34;;
@Accessors(chain = true)
output.setPromptText(&34;等待输入...&34;);
@Accessors(chain = true)
output.setFont(Font.font(&34;宋体&34;, 20));
HttpResponse<String> send = client.send(request, HttpResponse.BodyHandlers.ofString());
String str1 = appId + q + salt + token;
}
HBox box = new HBox();
// 遍历字节数组,通过位运算(位运算效率高),转换成字符放到字符数组中去
- 0000
- 0001
- 0000
- 0000
- 0000