string字符串转换成int数组
面试遇到该问题多次了,逻辑讲的出来,手写的时候就尴尬了。今天决心把这个代码实现一下,顺便做个备份。
实现:
话不多说,直接上代码了!!!
1、功能实现类(封装实现方法),见下:
public class Transformation {
/**
* char translate to int (char - '0')
* '0' ASCII value is 48
*/
private char[] charArray;
private int[] numberArray;
public int[] stringToNumberArray(String str) {
stringToCharArray(str);
return numberArray;
}
//先将string转换成char数组private void stringToCharArray(String str){
charArray = str.toCharArray();
charArrayToIntArray(charArray);
}
//在将char数组转换成int数组(-'0')数字0,减去0的ASCII值为48,依次换算其它数字1、2、3...private void charArrayToIntArray(char[] array) {
if(array != null && array.length >1) {
numberArray = new int[array.length];
for(int i=0; i<numberArray.length; i++) {
numberArray[i] = array[i] - '0';
}
}
}
}
2、测试类:
public class TransformDemo {
private static String varArray = "0123456789";//例子数字字符串
private static int[] numberArray;
private static Transformation mTransform;
public static void main(String[] args) {
mTransform = new Transformation();
numberArray = mTransform.stringToNumberArray(varArray);
printValue();
}
private static void printValue() {
//打印转换成功后的int数组
for(int number : numberArray)
System.out.println("number: " + number);
//打印转换前string和转换后int数组长度
System.out.println("numberArray length = " + numberArray.length);
System.out.println("varArray length = " + varArray.length());
}
}
3、测试下来,功能实现了。供参考,不妥之处,有劳请指教。