Java中有时需要将一个全是数字的字符串内容转换为数字或数组,今天来提供一些我总结出来的方法
这种方法对于较长的字符串来说比较好用,毕竟long类型能存储的数据大小也是有限的,但是如果字符串的长度几十位几百位,那么用这种方法有奇效且不出错。
package testDeMO; public class TEST { public static void main(String[]args){ String a ="123123123"; char[] putChar =new char[a.length()]; //生成一个用于存放原先字符串中每一位数字的数组 putChar = a.toCharArray(); //将字符串中的每一位数据转换后放入数组中 int[] num =new int[a.length()];//同时生成一个int类型数组 for(int i=0;i<a.length();i++){ num[i]=putChar[i]-48; System.out.print(num[i]+" "); } } }
使用这种方法,无论多么长的数字字符串也不需要担心数据类型无法存储。
这种方法的优点在于时间效率高,但是缺点在于如果字符串过长,那么基本的数据类型将无法容纳下那么长的数据。
使用方法也就是使用了Java的API中的一些方法。
package testDeMO; public class TEST { public static void main(String[]args){ String a="123456"; String b="123.456"; long numberLong=Integer.parseInt(a); double nunberDouble=Double.parseDouble(b); System.out.println(numberLong); System.out.println(nunberDouble); } }
第二种方法其实和第一种方法差不多,只不过也是使用了API中的一些方法,例如valueOf和toCharArray,parseInt等等,具体这些方法的功能可以自己百度啦
package testDeMO; import java.util.Scanner; public class TEST { public static void main(String[]args){ Scanner in=new Scanner(System.in); String numberString=""; numberString=in.next(); System.out.println(numberString); int[]numberInt=new int[numberString.length()]; char[]numberChar=new char[numberString.length()]; numberChar=numberString.toCharArray(); for(int i=0;i<numberString.length();i++){ numberInt[i]=Integer.parseInt(String.valueOf(numberChar[i])); System.out.print(numberInt[i]+" "); } } }
本人学的不多,记录一下自己的学习过程而已。