java中把字符串类型转换为int型,不允许使用java内置方法,如parseInt等
2013-12-10 18:43
609 查看
今天去人人面试,被问到怎样把一个字符串,如“123”转换为int类型,我当时没有写出来,只写了一半,没有想到怎么拼接各个分散字符。面试出来后,在地铁中,想到怎么拼接了,方法如下:
public static int stringTOInt(String str)
{
char[] arr = str.toCharArray();
int len = arr.length;
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < len; i++)
{
if (arr[i] >= 48 && arr[i] <= 58)
{
list.add(arr[i] - '0');
}
}
int sum = 0;
int listSize = list.size();
for (int i = 0; i < listSize; i++)
{
sum += Math.pow(10, listSize - i - 1) * list.get(i);
}
return sum;
}
思路:
1、先把字符串转换为字符数组
2、判断是否为数字,如果为数字,则数字字符减去0,为原来真正的数字,最后把想减后的结果添加至数据结构List集合中;0~9分别对应unicode中48-58数字
3、由于List是有序的,故“123”中1为百位,则需要乘以100,2为十位,则需要乘以10,3为个位,则不动,可以直接使用Math.pow()中方法,再乘以各个集合元素,累加至sum中
public static int stringTOInt(String str)
{
char[] arr = str.toCharArray();
int len = arr.length;
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < len; i++)
{
if (arr[i] >= 48 && arr[i] <= 58)
{
list.add(arr[i] - '0');
}
}
int sum = 0;
int listSize = list.size();
for (int i = 0; i < listSize; i++)
{
sum += Math.pow(10, listSize - i - 1) * list.get(i);
}
return sum;
}
思路:
1、先把字符串转换为字符数组
2、判断是否为数字,如果为数字,则数字字符减去0,为原来真正的数字,最后把想减后的结果添加至数据结构List集合中;0~9分别对应unicode中48-58数字
3、由于List是有序的,故“123”中1为百位,则需要乘以100,2为十位,则需要乘以10,3为个位,则不动,可以直接使用Math.pow()中方法,再乘以各个集合元素,累加至sum中
相关文章推荐
- Java之使用Integer类中的parseInt()方法将字符串转换为基本数据类型
- Java中char数组(字符数组)与字符串String类型的转换方法
- Java中 基本数据类型与封装类、字符串的相互转换 方法汇总
- java实现字符串和日期类型相互转换的方法
- Java 中 父类变量访问子类方法 需要使用 类型转换 (instenceof)关键字 /类型判断/
- JAVA面试 不使用API情况下,把数字字符串转换成int类型
- 编写一个程序,用parseInt()方法将字符串100由十六进制转换为十进制的int型数据。再用valueOf()方法将字符串12345678转换为long型数据。
- java--时间字符串类型转换为可存入数据库时间类型的方法
- fastjson 使用 string字符串转换成java的各种类型
- SpringMVC把从Jsp页面传递过来的日期字符串转换成Java日期类型方法
- JAVA中将带负数的String字符串转换为int型数组方法
- 举例讲解Java中数组和字符串类型的使用方法
- 对Java字符串与整形、浮点类型之间的相互转换方法总结
- 求助!!java!! 求一个将 1维整型数组转换为字符串类型的方法!
- beanutils工具类将字符串转换成Date(java.util.Date)数据类型的方法
- 使用Convert 类和Parse方法将字符串转换为数值类型
- 【Java面试题】17 如何把一个逗号分隔的字符串转换为数组? 关于String类中split方法的使用,超级详细!!!
- 要求根据RandomStr.java:使用类型转换生成六位验证字符串,示例程序每次运 行时,都会生成不同的字符串。
- java梳理-给一个字符串类型的数字,不调用java直接转的API写一个方法转换出来
- Java中char数组(字符数组)与字符串String类型的转换方法