Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将字符串更改为整数并添加它们?_Java_String_Integer - Fatal编程技术网

Java 如何将字符串更改为整数并添加它们?

Java 如何将字符串更改为整数并添加它们?,java,string,integer,Java,String,Integer,我正在写一个代码,它将接受输入的数字,只添加偶数位置的值 例如: 如果用户输入53429 偶数位置之和为5 我的问题是,我试图将偶数位置的字符串转换回整数,并将它们相加。这就是我所拥有的 当我试图将字符串解析为整数时,我一直收到一个错误 Cannot find symbol symbol : method parseInt(java.lang.String) location: class Integer 代码: 在字符串中添加偶数字符的代码 String str="1234

我正在写一个代码,它将接受输入的数字,只添加偶数位置的值

例如:

如果用户输入53429 偶数位置之和为5

我的问题是,我试图将偶数位置的字符串转换回整数,并将它们相加。这就是我所拥有的

当我试图将字符串解析为整数时,我一直收到一个错误

Cannot find symbol symbol : method parseInt(java.lang.String) location: class Integer 代码:


在字符串中添加偶数字符的代码

 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");
}