Java十六进制到ASCII转换,用于循环和其他所需信息
我试图让我的程序以类似这样的方式输出,这是十六进制到ASCII或字符转换。只是需要帮助。请告诉我我的for循环什么时候出错Java十六进制到ASCII转换,用于循环和其他所需信息,java,for-loop,hex,Java,For Loop,Hex,我试图让我的程序以类似这样的方式输出,这是十六进制到ASCII或字符转换。只是需要帮助。请告诉我我的for循环什么时候出错 Please enter the string to convert: a+b%3A4865792074686973206973206a7573742061207072616374696365 a b:Hey this is just a practice 但我得到以下信息:( 这是我的密码 public class Unmangle { public st
Please enter the string to convert:
a+b%3A4865792074686973206973206a7573742061207072616374696365
a b:Hey this is just a practice
但我得到以下信息:(
这是我的密码
public class Unmangle {
public static void main(String[] args) {
Scanner webinput = new Scanner(System.in);
System.out.println("Please enter the string to convert: ");
String input = webinput.nextLine();
Unmangle.Unmangler(input);
String result = Unmangle.Unmangler(input);
System.out.println(result);
}
// For example, unmangle("a+b%3A") should return "a b:".
public static String Unmangler(String input) {
// if(input.contains("%"))
int place = input.indexOf("%");
StringBuilder outputbuild = new StringBuilder();
StringBuilder S;
for (int i = place; i < input.length(); i += 2) {
String output = input.substring(place + 1, place + 3);
outputbuild.append((char) Integer.parseInt(output, 16));
}
String result = input.replace("+", " ") + outputbuild;
return result;
}
}
公共类解缠结{
公共静态void main(字符串[]args){
扫描仪webinput=新扫描仪(System.in);
System.out.println(“请输入要转换的字符串:”);
字符串输入=webinput.nextLine();
解缠结。解缠结器(输入);
字符串结果=Unmangle.Unmangler(输入);
系统输出打印项次(结果);
}
//例如,解缠结(“a+b%3A”)应返回“a b:”。
公共静态字符串解缠结器(字符串输入){
//if(input.contains(“%”)
int place=input.indexOf(“%”);
StringBuilder outputbuild=新建StringBuilder();
架线工;
for(int i=place;i
for
循环中,需要从%
之后的下一个字母开始
for (int i = place + 1; i < input.length(); i += 2) {
// ^^^^^^^^^
%
替换为空格并包含解码字符串之前,仅获取%
之前的部分(包括它)
String result = input.substring(0, place + 1).replace("+", " ") + outputbuild;
解纠缠器方法更改为
public static String unmangler(String input) {
StringBuilder outputbuild = new StringBuilder();
int place = input.indexOf("%");
for (int i = place + 1; i < input.length(); i += 2)
outputbuild.append((char) Integer.parseInt(input.substring(i , i + 2), 16));
return input.substring(0, place + 1).replace("+", " ") + outputbuild;
}
公共静态字符串解缠器(字符串输入){
StringBuilder outputbuild=新建StringBuilder();
int place=input.indexOf(“%”);
对于(int i=place+1;i
我不想让这成为一个对立的答案。只是我还没有足够的声誉发表评论,而且上面的答案缺少一个方面,那就是在for循环中,你需要I
String result = input.substring(0, place + 1).replace("+", " ") + outputbuild;
public static String unmangler(String input) {
StringBuilder outputbuild = new StringBuilder();
int place = input.indexOf("%");
for (int i = place + 1; i < input.length(); i += 2)
outputbuild.append((char) Integer.parseInt(input.substring(i , i + 2), 16));
return input.substring(0, place + 1).replace("+", " ") + outputbuild;
}