我如何在不使用 parseInt 和 String.valueOf() (java) 的情况下将 char 数组转换为 int
how i can convert char array to int without use parseInt and String.valueOf() (java)
需要将 char 数组转换为 int 而不使用 parseInt 和 String.valueOf(),
需要实现这个方法
public static int parseInt(char[] str) {
}
例如,如果输入数据是char[] str = {'-','1','2','3'};
需要显示:
int result = parseInt(str);
System.out.println(result);
// -123
它将适用于您的情况
public static int parseInt(char[] str) {
int result = 0;
int start = 0;
boolean negative = false;
if(str[0] == '-') {
start = 1;
negative = true;
}
for (int i = start; i < str.length; i++)
{
int digit = (int)str[i] - (int)'0';
if ((digit < 0) || (digit > 9)) throw new NumberFormatException();
result *= 10;
result += digit;
}
if(negative) {
result = 0 - result;
}
return result;
}
public static void main(String[] args) {
char[] str = {'-', '1', '2', '3'};
int[] charToInt = new int[str.length];
for (int i = 0; i < str.length; i++) {
charToInt[i] = Character.getNumericValue(str[i]);
}
System.out.println(Arrays.toString(charToInt));
}
Mb 类似这样,但我不确定第一个字符
需要将 char 数组转换为 int 而不使用 parseInt 和 String.valueOf(),
需要实现这个方法
public static int parseInt(char[] str) {
}
例如,如果输入数据是char[] str = {'-','1','2','3'};
需要显示:
int result = parseInt(str);
System.out.println(result);
// -123
它将适用于您的情况
public static int parseInt(char[] str) {
int result = 0;
int start = 0;
boolean negative = false;
if(str[0] == '-') {
start = 1;
negative = true;
}
for (int i = start; i < str.length; i++)
{
int digit = (int)str[i] - (int)'0';
if ((digit < 0) || (digit > 9)) throw new NumberFormatException();
result *= 10;
result += digit;
}
if(negative) {
result = 0 - result;
}
return result;
}
public static void main(String[] args) {
char[] str = {'-', '1', '2', '3'};
int[] charToInt = new int[str.length];
for (int i = 0; i < str.length; i++) {
charToInt[i] = Character.getNumericValue(str[i]);
}
System.out.println(Arrays.toString(charToInt));
}
Mb 类似这样,但我不确定第一个字符