数字解析在平常的工作中可能会遇到需要将字符串类型转化为数字类型的情况,例如,从另外一个系统中来的XML格式的字符串,其中的部分数据需要转换为Double类型的数据以便于计算。当然这里的字符串值应该是能够转换为数字的,例如"1234567.08"这样的字符串。
转换的目的是将字符串值转换为数字值的基本类型。Byte, Short, Integer, Long, Float和Double类都提供了静态的方法(这里大家应该知道什么是静态方法了)来将字符串转换为对应的基本类型。例如,Integer类提供了如下形式的转换方法:
Java代码
复制内容到剪贴板
代码:
public static int parseInt (String s) throws NumberFormatException
其他的类提供了如下的方法来转换字符串到对应的类型:
复制内容到剪贴板
代码:
The Byte class provides the parseByte method,
The Long class the parseLong method,
The Short class the parseShort method,
The Float class the parseFloat method, and
The Double class the parseDouble method.
这里大家注意下,如果字符串值如果不能被转换为正确的数字值,将会抛出异常(NumberFormatException )。下面的例子演示了Integer的parseInt方法:
Java代码
复制内容到剪贴板
代码:
public class MainClass{

public static void main(String[] args){
int x = Integer.parseInt ("123");

}

}
计算用户输入的数的和既然知道了如何将字符串数据转换为数字类型的数据,我们给出一个比较有意思的例子,它从控制台接收用户输入的数据,然后判断是否是数字,如果是数字就累加,最后在控制台输出数字的和。代码如下:
Java代码
复制内容到剪贴板
代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class ParseDemo {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
int i;
int sum = 0;

System.out.println("Enter numbers, 0 to quit.");
do {
str = br.readLine();
try {
i = Integer.parseInt(str);
} catch (NumberFormatException e) {
System.out.println("Invalid format");
i = 0;
}
sum += i;
System.out.println("Current sum is: " + sum);
} while (i != 0);
}
}
代码不多做解释了,这里大家自己好好分析下代码。上个教程我们已经讲过这种设计思路了。这里大家稍微注意下try...catch,在以后的异常处理部分我们会对它进行详细的讲解。
posted on 2008-12-08 11:43  love in summer  阅读(1018)  评论(0编辑  收藏  举报