想要将JtextArea文本转换为位字符串。
我正在使用两个JTextArea一个用于输入,一个用于输出,一个按钮执行以下代码:
StringBuilder sb = new StringBuilder();
int ssc =Integer.parseInt(jta1.getText());
String sc=Integer.toBinaryString(ssc);
char[] bc=sc.toCharArray();
for (char c : bc) {
sb.append("-");
int i =Character.getNumericValue(c);
String a = String.valueOf(i);
sb.append(a.toString());
jta2.setText(a);
Error
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "dsa"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:449)
at java.lang.Integer.parseInt(Integer.java:499)
at MainFrame$2.actionPerformed(MainFrame.java:57)
答案 0 :(得分:0)
Integer.parseInt(jta1.getText());
假设您尝试解析的不只是数字,上面的内容会导致NumberFormatException
。解析器只能解析数字字符串,如“1234”,而不是字母"dsa"
。
java.lang.NumberFormatException: For input string: "dsa"
你可以做的是迭代字符,然后将每个字符转换为int并附加每个字符的二进制字符串
for (char c : txt.toCharArrray() ) {
String binaryOfCharacter = Integer.toBinaryString((int)c);
// append to StringBuilder
}
注意:每个字符只返回七位代表