我正在尝试使用以下代码将字符串存储到整数数组中:
public LargeInteger(String s) {
for (int i = 0; i < s.length(); i++) {
intArray[i] = Integer.parseInt( s.charAt(i));
}
}
eclipse给我一个错误说:方法parseInt(string)不适用于参数(char)
我做错了什么?
答案 0 :(得分:6)
您需要解析char
,或将其转换为String
。
如果您一次尝试获得一位数,并且您知道输入数字是一个数字,那么将单个数字转换为int
的最简单方法就是
intArray[i] = Character.digit(s.charAt(i), 10); // in base 10
如果您想继续使用Integer.parseInt
,请执行
intArray[i] = Integer.parseInt(String.valueOf(s.charAt(i)));
// or
intArray[i] = Integer.parseInt(s.substring(i, i+1));
答案 1 :(得分:1)
这是因为Integer.parseInt()
期望String
作为参数,而您传递char
(s.charAt()
会返回char
)。
由于您一次创建一个数字的数组,获得十进制表示的更好方法是:
intArray[i] = s.charAt(i) - '0';
答案 2 :(得分:0)
char不是String,因此请使用子字符串函数s.substring(i, i+1)
或更好intArray[i] = s.charAt(i)
答案 3 :(得分:0)
s.charAt
返回一个字符。
+ parseInt
获取String
= Eclipse为您提供编译错误
如果确实需要,您可以从char创建一个String:
s.charAt(i)+""
答案 4 :(得分:0)
String[] split = s.split("");
int[] nums = new int[split.length];
for(int i = 0; i < split.length; i++){
nums[i] = Integer.parseInt(split[i]);
}
答案 5 :(得分:0)
public class Storing_String_to_IntegerArray
{
public static void main(String[] args)
{
System.out.println(" Q.37 Can you store string in array of integers. Try it.");
String str="I am Akash";
int arr[]=new int[str.length()];
char chArr[]=str.toCharArray();
char ch;
for(int i=0;i<str.length();i++)
{
arr[i]=chArr[i];
}
System.out.println("\nI have stored it in array by using ASCII value");
for(int i=0;i<arr.length;i++)
{
System.out.print(" "+arr[i]);
}
System.out.println("\nI have stored it in array by using ASCII value to original content");
for(int i=0;i<arr.length;i++)
{
ch=(char)arr[i];
System.out.print(" "+ch);
}
}
}