JAVA把ASCII码转变为字符串

这个是处理函数publicstaticStringascii2String(StringASCIIs){String[]ASCIIss=ASCIIs.split(",")... 这个是处理函数
public static String ascii2String(String ASCIIs) {
String[] ASCIIss = ASCIIs.split(",");
StringBuffer sb = new StringBuffer();
for (int i = 0; i < ASCIIss.length; i++) {
sb.append((char) ascii2Char(Integer.parseInt(ASCIIss[i])));
}
return sb.toString();
}
这个是主函数
public static void main(String[] args){
String output="1041011081123210910133";
System.out.println("output="+output);
String op=new String();
op=ascii2String(output);
System.out.println("op="+op);
}
为什么控制台老是说
Exception in thread "main" java.lang.NumberFormatException: For input string: "1041011081123210910133"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at ascii.ascii2String(ascii.java:59)
at ascii.main(ascii.java:108)
我该如何修改啊!!!要哭了都!
展开
 我来答
fuhaiwei
推荐于2017-10-09 · TA获得超过3409个赞
知道大有可为答主
回答量:974
采纳率:75%
帮助的人:1383万
展开全部
public class TTTTT {

    public static void main(String[] args) {
        String string = "1041011081123210910133";
        System.out.println(asciiToString(string));
    }

    public static String asciiToString(String text) {
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < text.length(); i++) {
            if (text.charAt(i) <= '2' && i <= text.length() - 3) {
                int code = Integer.parseInt(text.substring(i, i + 3));
                builder.append((char) code);
                i += 2;
            } else {
                int code = Integer.parseInt(text.substring(i, i + 2));
                builder.append((char) code);
                i += 1;
            }
        }
        return builder.toString();
    }

}

你这编码很怪啊,结果竟然是help me!

1041011081123210910133
解析起来很麻烦那,不是3位3位的。
104
101
108
112
32
109
101
33
追问
哈哈,被你发现了。。。
追答
public class TTTTT {

    public static void main(String[] args) {
        String string = "1041011081123210910133";
        System.out.println(asciiToString(string));
    }

    public static String asciiToString(String text) {
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < text.length(); i++) {
            if (text.charAt(i) == '1' && i < text.length() - 2) {
                int code = Integer.parseInt(text.substring(i, i + 3));
                builder.append((char) code);
                i += 2;
            } else if (i < text.length() - 1) {
                int code = Integer.parseInt(text.substring(i, i + 2));
                builder.append((char) code);
                i += 1;
            }
        }
        return builder.toString();
    }
    
}

最终版,你原先的程序是超过Integer的取值范围了,关键是逻辑也不对。


还请采纳!

Stale331x
2013-09-13 · TA获得超过1299个赞
知道小有建树答主
回答量:1276
采纳率:33%
帮助的人:831万
展开全部
sb.append((char) ascii2Char(Integer.parseInt(ASCIIss[i]))); 是怎么定义的??
你看看,你把你传入的参数分段了,ASCIIss = ASCIIs.split(",");

因为你传入的String output="1041011081123210910133" 没有",",所以,最终的ASCIIss.length=1; ASCIIss[0]="1041011081123210910133"。
然后你用这个字符串,转换为int,可能是超出了int的取值范围了,所以出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
易推网络
2013-09-13
知道答主
回答量:38
采纳率:0%
帮助的人:8.6万
展开全部
电饭锅等他一会法国恢复
追问
一会英国恢复行不行= =
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-13
展开全部
你进来的是纯数字的string,为什么要用split(",")呢?这样无意义吧
更多追问追答
追问
这是一部分代码。output是将字符串变成的ascii码。现在要变回去。。
追答
你的output是十进制的ASCII码值?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吕先生爱叨叨
2013-09-13 · TA获得超过398个赞
知道小有建树答主
回答量:874
采纳率:0%
帮助的人:322万
展开全部
把这个方法也贴上来 ascii2Char
追问
public static char ascii2Char(int ASCII) {  
return (char) ASCII;
}

public static int char2ASCII(char c) {
return (int) c;
}
追答
public static void main(String[] args) {
        String output = "1041,0110,8112,3210,9101,33";
        System.out.println("output=" + output);
        String op = new String();
        op = ascii2String(output);
        System.out.println("op=" + op);
    }

输出结果:op=Бn???!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式