String str = text1.getText();
//char[] chr = new char[str.length()];
int len = str.length();
StringBuffer bstr = new StringBuffer(str);
for (int i = 0; i < str.length(); i++) {
int q = (key.charAt(i % key.length()) >> (i % 32)) | (key.charAt(i % key.length()) << (32 - (i % 32)));
bstr.setCharAt(i, (char) (str.charAt(i) ^ q));
}
text3.setText(String.valueOf(bstr));;我输入c都显示不出值..输入数字能.但是会丢值...
大家帮忙看看有什么错误3Q
//char[] chr = new char[str.length()];
int len = str.length();
StringBuffer bstr = new StringBuffer(str);
for (int i = 0; i < str.length(); i++) {
int q = (key.charAt(i % key.length()) >> (i % 32)) | (key.charAt(i % key.length()) << (32 - (i % 32)));
bstr.setCharAt(i, (char) (str.charAt(i) ^ q));
}
text3.setText(String.valueOf(bstr));;我输入c都显示不出值..输入数字能.但是会丢值...
大家帮忙看看有什么错误3Q
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at Main1.main(Main1.java:108)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)好多异常..
这里有问题,str.charAt(i)是字符,不能算数运算
如下这样写丢失字符...
String str = text1.getText();
char[] chr = new char[str.length()];
int len = str.length();
StringBuffer bstr = new StringBuffer(str);
for (int i = 0; i < str.length(); i++) {
int q = (key.charAt(i % key.length()) >> (i % 32))
| (key.charAt(i % key.length()) << (32 - (i % 32)));
bstr.setCharAt(i, (char) (str.charAt(i) ^ q));
}
for (int i = 0; i < len; i++) { chr[i] = bstr.charAt(len - 1 - i);
}
text3.setText(String.valueOf(chr));