- import java.io.*;
- import java.util.*;
- public class Test3
- {
- public static void main(String[] args) throws IOException
- {
- System.out.println("请输入一串正整数数字:");
- //读取键盘输入并调用readLine()方法
- BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
- String str=br.readLine();
- changeMethod(str);
- br.close();
- }
-
- //定义一个可以将字符串转换成中文输出的方法
- public static void changeMethod(String str) throws IOException
- {
- //使用查表法,之前考虑过switch方法,单代码太冗长,已放弃
- String[] arr={"零 ","一","二","三","四","五","六","七","八","九"};
- //定义一个缓冲区以提高效率
- StringBuilder sb=new StringBuilder();
-
- //通过for循环遍历字符串中各个元素,并转换成相应的中文
- for (int i = 0; i < str.length(); i++)
- {
- //int x= str.charAt(i)-'0';
- int x=Integer.parseInt(str.charAt(i));
- //判断是否是数字,对符合要求数据添加进缓冲区
- if(x>=0 && x<10)
- {
- sb.append((arr[x]));
- }
- else
- {
- System.out.print("-");
- }
- }
- //最后将缓冲区的数据变成字符串打印在控制台上
- System.out.println(sb.toString());
- }
- }
复制代码
主要问题就是:我为什么不能将:int x= str.charAt(i)-'0';改为:int x=Integer.parseInt(str.charAt(i));??或者还有什么其他方法可以将字符转换成整数?
|
|