java 中如何将一个字符串转换成一个整数数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 中如何将一个字符串转换成一个整数数组相关的知识,希望对你有一定的参考价值。
public class Test
public static void main(String[] args)
char[] temp=new char[args[0].length()];
temp=args[0].toCharArray();
for(int i=0;i<args.length;i++)
int[] a=new int[args[0].length()];
a[i]=Integer.parseInt(temp[i]);
System.out.print(a[i]+" ");
应该如何改写啊?
还有没有高手啊!帮帮忙啊
二楼的很对啊 我想问问arg.charAt(i) - '0'; 和arg.charAt(i) 差别是什么啊?
arg.charAt(i) - '0'是将前面的ascii码减去0的ascii码
例如arg.charAt(i)表示的是字符f
f的ascii码为102
0的ascii码48
102-48=54
ascii码54 表示的是字符6 (f在26个字母中排第六) 参考技术A
java将字符串转换成整数数组,可以先拆分字符串,然后使用Integer进行转换,实例如下:
String str = "100 200 33 55";//字符串String[] temp = str.spli(" ");//以空格拆分字符串
int[] result = new int[temp.length];//int类型数组
for(int i=0;i<temp.length;i++)
result[i] = Integer.parseInt(temp[i]);//整数数组
参考技术B arg.charAt(i) - '0'和arg.charAt(i)的差别是:前者能得到想要的正确结果,实际上是arg.charAt(i)这个字符的ASCII码值与0这个字符的ASCII值(48)相减的结果,而后者则只能得到arg.charAt(i)的ASCII值。 以下代码已通过测试:
public class Test
/**
* @param args
*/
public static void main(String[] args)
String str = args[0];
int [] a = new int[str.length()];
for(int i=0; i<str.length(); i++)
a[i] = Integer.parseInt(str.charAt(i)+"");
for(int i=0; i<a.length; i++)
System.out.println(a[i]);
参考技术C 转换成整形数组,基本思想就是把String类型的字符串中的每个字符转换为一个char型字符,char型字符可以直接强制转换为int类型整数,然后存到数组中
public class Test
public static void main(String[] args)
String arg = args[0];
int[] a = new int[arg.length()];
for(int i=0;i<arg.length();i++)
a[i] = arg.charAt(i) - '0';
for(int i=0;i<a.length;i++)
System.out.print(a[i] + " ");
参考技术D 有专门转整数的,但是没有转整数数组的。要是想一个字符一个数字的话,就自己跑循环。
用JAVA编程将任意一个整数转换成中文大写,如101转换为一百零一
我们刚学到内部类,注意是任意一个整数
能不能简单点呀
import java.io.FileReader;
public class setrs
public static void main(String[] args)
throws Exception
String fileName = "c:\\input.txt";
// 单位数组
String[] units = new String[] "十", "百", "千", "万", "十", "百", "千", "亿";
// 中文大写数字数组
String[] numeric = new String[] "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖";
// 读文件
BufferedReader br = new BufferedReader(new FileReader(fileName));
String temp = null;
temp = br.readLine();
String res = "";
while (null != temp)
// 遍历一行中所有数字
for (int k = -1; temp.length() > 0; k++)
// 解析最后一位
int j = Integer.parseInt(temp.substring(temp.length() - 1, temp.length()));
String rtemp = numeric[j];
// 数值不是0且不是个位 或者是万位或者是亿位 则去取单位
if (j != 0 && k != -1 || k % 8 == 3 || k % 8 == 7)
rtemp += units[k % 8];
// 拼在之前的前面
res = rtemp + res;
// 去除最后一位
temp = temp.substring(0, temp.length() - 1);
// 去除后面连续的零零..
while (res.endsWith(numeric[0]))
res = res.substring(0, res.lastIndexOf(numeric[0]));
// 将零零替换成零
while (res.indexOf(numeric[0] + numeric[0]) != -1)
res = res.replaceAll(numeric[0] + numeric[0], numeric[0]);
// 将 零+某个单位 这样的窜替换成 该单位 去掉单位前面的零
for (int m = 1; m < units.length; m++)
res = res.replaceAll(numeric[0] + units[m], units[m]);
// 这里打印一下 可以改成写文件
System.out.println(res);
// 读取下一个数
res = "";
temp = br.readLine();
这代码是别人写的希望对你有帮助,祝你学习进步。
参考资料:别人写的代码。
参考技术B 一楼给的方法是最普及的方法了,我们都这样用的 参考技术C 创建数组 然后将大写的放进去啊 用switch语句换以上是关于java 中如何将一个字符串转换成一个整数数组的主要内容,如果未能解决你的问题,请参考以下文章