【发布时间】:2013-12-17 21:11:12
【问题描述】:
我想编写一个将二进制数转换为十进制数的程序。 我发现问题是我什至无法获得“捕获路径”。 我也知道我必须用 char 改变一些东西,但我绝对没有得到一个可行的解决方案。谢谢。
import java.util.Scanner;
public class BinaryStringToNumber {
public static void main(String[] args) {
String inputBinaer;
Scanner input = new Scanner(System.in);
System.out.print("Type in a binary number: ");
inputBinaer = input.next();
input.close();
try
{
convert(inputBinaer);
}
catch (NumberFormatException e)
{
System.out.println( "Just numbers!" );
} finally {
System.out.println( "Finally" );
}
}
public static void convert(String inputBinaer) throws NumberFormatException{
char [] puffer;
int dez = 0;
puffer = inputBinaer.toCharArray();
for(int i=0;i<puffer.length;i++){
if(puffer[i]== '1'){
dez = (int) (dez + Math.pow(2, puffer.length-1-i));
}
}
System.out.println("The decimal number is: " + dez);
}
}
【问题讨论】:
-
您的
convert方法永远不会抛出NumberFormatException。为什么不扔呢? -
我不是在 convert 方法后面做的吗?我必须做什么才能获得 NumberFormatException?我已经尝试了好几个小时了。
-
您认为在
convert的哪个位置会引发异常?帮助我们至少了解您的期望。 -
既然给出了可接受的答案,这里有个小提示,请使用
dez += Math.pow(2, puffer.length-1-i));而不是dez = (int) (dez + Math.pow(2, puffer.length-1-i));,这样对眼睛的痛苦会减少(恕我直言),不用担心编译器会正确处理跨度>
标签: java exception char int try-catch