我正在编写一个代码,该代码将输入输入的数字并仅添加偶数位置的值。
例如:
如果用户输入53429 偶数位置的总和为5。
我的问题是我正在尝试将偶数位置的字符串转换回整数并将它们加在一起。这就是我所拥有的
当我尝试将字符串解析为整数时,我一直收到错误。
Cannot find symbol symbol : method parseInt(java.lang.String) location: class Integer
代码:
import java.util.Scanner;
public class NumberSums {
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);
}
String s2 = s1.substring(0,1);
String s3 = s1.substring(1,2);
String s4 = s1.substring(2,3);
String s5 = s1.substring(3,4);
String s6 = s1.substring(4,5);
int a = Integer.parseInt(s3);
//int b = Integer.parseInt(s5);
//sum = (a + b);
System.out.println("The sum of all even positions is " + sum);
}
}
答案 0 :(得分:6)
我愿意打赌你有一个名为Integer
的类,Java正试图使用它而不是java.lang.Integer
。
重命名您的课程,或改为使用java.lang.Integer.parseInt(s3)
。
答案 1 :(得分:2)
在字符串中添加偶数字符的代码。
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);
答案 2 :(得分:1)
我运行了该程序并且工作正常......如果您取消注释行int b
和sum = (a + b);
。但是,您必须声明sum
变量,即int sum = (a + b);
你在运行什么JDK?您描述的错误只会在Integer.parseInt(String foo);
不存在的情况下发生,除非它至少存在于Java 1.4之后,所以我不确定为什么您不会找到它;除非你在同一个包中定义了另一个Integer
类,这可能会混淆编译器。
这是完整的程序,包括导入(如果您导入的是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();
}
}
答案 3 :(得分:0)
修改后的代码。尝试理解它。
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");
}
}
} }