Java 如何将字符串更改为整数并添加它们?
我正在写一个代码,它将接受输入的数字,只添加偶数位置的值 例如: 如果用户输入53429 偶数位置之和为5 我的问题是,我试图将偶数位置的字符串转换回整数,并将它们相加。这就是我所拥有的 当我试图将字符串解析为整数时,我一直收到一个错误 Cannot find symbol symbol : method parseInt(java.lang.String) location: class Integer 代码:Java 如何将字符串更改为整数并添加它们?,java,string,integer,Java,String,Integer,我正在写一个代码,它将接受输入的数字,只添加偶数位置的值 例如: 如果用户输入53429 偶数位置之和为5 我的问题是,我试图将偶数位置的字符串转换回整数,并将它们相加。这就是我所拥有的 当我试图将字符串解析为整数时,我一直收到一个错误 Cannot find symbol symbol : method parseInt(java.lang.String) location: class Integer 代码: 在字符串中添加偶数字符的代码 String str="1234
在字符串中添加偶数字符的代码
String str="1234567";
int sum=0;
for(int i=1;i<str.length();i=i+2){
sum+=(str.charAt(i)-'0');
}
System.out.println(sum);
我们也可以从键盘上提取数据,开始计算:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please enter number : ");
String number=null;
try{
number = reader.readLine();
}
catch (IOException e) {
e.printStackTrace();
throw e;
}
int sum=0;
for(int i=1;i<number.length();i=i+2){
sum+=(number.charAt(i)-'0');
}
System.out.println(sum);
我运行了这个程序,效果很好。。。如果取消注释int b和sum=a+b;行;。但是,您必须声明sum变量,即int sum=a+b 你在运行什么JDK?仅当Integer.parseIntString foo;不存在,但它至少从Java1.4开始就存在了,所以我不确定你为什么找不到它;除非在同一个包中定义了另一个Integer类,否则可能会混淆编译器 以下是完整的程序,包括可能存在问题的导入,如果您导入的是不同于java.lang.Integer的整数,修复变量声明并删除不必要的代码,修复缩进,并添加Scanner.close语句:
import java.util.Scanner;
public class Test {
public static void main(String [] args)
{
Scanner keyboard=new Scanner(System.in);
System.out.print("Enter a number: ");
String x=keyboard.next();
String s1 = x;
int length = s1.length();
if(length != 5)
{
System.out.println("Invalid value");
System.exit(0);
}
String s3 = s1.substring(1,2);
String s5 = s1.substring(3,4);
int a = Integer.parseInt(s3);
int b = Integer.parseInt(s5);
int sum = (a + b);
System.out.println("The sum of all even positions is " + sum);
keyboard.close();
}
}
我敢打赌,您有一个名为Integer的类,Java正在尝试使用它,而不是Java.lang.Integer
重命名类,或者改用java.lang.Integer.parseInts3。修改后的代码。试着理解它
import java.util.Scanner;
public class EvenPos {
public static void main(String [] args)
{
Scanner keyboard=new Scanner(System.in);
System.out.print("Enter a number: ");
String x=keyboard.next();
String s1 = x;
int length = s1.length();
if(length<5) {
System.out.println("Invalid value");
System.exit(0);
}
if(length>5) {
System.out.println("Invalid value");
System.exit(0);
}
else{
char a = s1.charAt(1);
char b = s1.charAt(3);
int q = Character.getNumericValue(a); //Convert Char to Integer
int z = Character.getNumericValue(b); // //Convert Char to Integer
int sum = 0;
if (q % 2 == 0 && z % 2 == 0){ //If both even, then.....
sum = q+z;
System.out.println("Your sum: " + sum);
}
else{
System.out.println("No even Number found at even POS");
}
}
}
}如果有错误,是否需要解释一下您在哪里遇到的错误?当我试图将字符串解析为整数时,我遇到了一个错误。什么类型的错误/异常?可能会发布错误日志。如果使用53429,则字符串s6=s1。子字符串4,5;将生成ArrayIndexOutOfBoundExceptions。只是为了好玩,我在我倾向于这个答案的时候做了一行Python解决方案,我尝试复制粘贴OP的代码,但没有任何错误。@KubaSpatny,只是粘贴的代码中没有定义sum变量:就是这样。非常感谢。
import java.util.Scanner;
public class EvenPos {
public static void main(String [] args)
{
Scanner keyboard=new Scanner(System.in);
System.out.print("Enter a number: ");
String x=keyboard.next();
String s1 = x;
int length = s1.length();
if(length<5) {
System.out.println("Invalid value");
System.exit(0);
}
if(length>5) {
System.out.println("Invalid value");
System.exit(0);
}
else{
char a = s1.charAt(1);
char b = s1.charAt(3);
int q = Character.getNumericValue(a); //Convert Char to Integer
int z = Character.getNumericValue(b); // //Convert Char to Integer
int sum = 0;
if (q % 2 == 0 && z % 2 == 0){ //If both even, then.....
sum = q+z;
System.out.println("Your sum: " + sum);
}
else{
System.out.println("No even Number found at even POS");
}