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));
}
} 展开
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));
}
} 展开
3个回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你想怎么处理这个字符串,要有目的性
第17行,明显ch都成负值了,char显然乱码了。
第17行,明显ch都成负值了,char显然乱码了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询