java写的一段程序,输出结果全是问号,请高手指教

publicclassPword{publicStringasctoString(Stringst){intoffset=0;intstrlen=0;inti=0;int... public class Pword {
public String asctoString(String st) {
int offset = 0;
int strlen = 0;
int i = 0;
int ch = 0;
String tem = "";
String ptext = "";
tem = st;
strlen = st.length();
byte bytes[] = st.getBytes();
for (i = 0; i < strlen; i++) {
ch = bytes[i];
if (ch >= 32 && ch <= 126) {
ch+=32;
if ((ch - 95) < 0) {
ch = ch - 95;
}
offset = (int) (96 * Math.random());
//System.out.println(offset);
int tmp;
for (tmp = 0; tmp <= 94; tmp++) {
if (tmp % 95 == ch) {
ch = tmp + offset;
ch-=32;
}
}
}
ptext += (char)ch;
}
return ptext;
}
public static void main(String[] args) {
Pword qqp=new Pword();
String ss="123456";
System.out.print(qqp.asctoString(ss));
}
}
展开
 我来答
fyeat111
2010-08-16 · TA获得超过993个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:383万
展开全部
这段代码很容易就把一个字符的ascii码搞得小于32或大于128,ascii码小于32和大于128的字符要么不能显示,要么就是不存在的字符,没办法显示,只能显示问号了。

有的程序没法显示的字符显示为黑块或方框
ajibaajiba
2010-08-17 · 超过30用户采纳过TA的回答
知道答主
回答量:142
采纳率:0%
帮助的人:69.1万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我今天上课了
2010-08-17 · TA获得超过1410个赞
知道小有建树答主
回答量:844
采纳率:0%
帮助的人:677万
展开全部
不知道你想怎么处理这个字符串,要有目的性
第17行,明显ch都成负值了,char显然乱码了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式