【问题标题】:How to convert an String Variable with Array to an Integer Variable with Array如何将带有数组的字符串变量转换为带有数组的整数变量
【发布时间】:2015-12-24 06:57:31
【问题描述】:

我是 Java 编程新手。我正在尝试将带有数组的字符串变量转换为 int 变量数组

但我有 2 个错误,不知道如何修复它,

任何帮助都会很棒,谢谢..

这是我的源代码:

import java.util.Scanner;
public class stringtoint {

    public static void main (String args[]) {
        Scanner in=new Scanner(System.in);
        String number[]=new String[100];
        int sum=0;
        for(x=0;x<=1;x++)
        {
            System.out.print("input number : ");number[x]=in.next();
            int value[x]= Integer.parseInt(number[x]); // i found "expected here", what should i do, need help, please..
            sum=sum+number[x];
        }

        for(x=0;x<=1;x++)
        {
            System.out.println("Data Number "+(x+1)+" : "+number[x]);   
        }
            System.out.println("Sum :\t "+sum); 
    }
}

This is what the errors look like

【问题讨论】:

  • 首先你需要声明你的变量x它没有在代码的任何地方声明。 for 循环应该类似于 for(int x=0;x&lt;=1;x++)
  • 请发布错误
  • 请在问题中包含错误。请勿发布屏幕截图或屏幕截图链接。

标签: java arrays variables


【解决方案1】:

当您将搅拌数组转换为整数数组时, 我们应该声明一个整数数组 并且在您发布的代码中存在一些语法错误,因为您在使用之前没有声明整数数组(int value[x])

并尝试下面的代码,它将数字字符串数组(字符串数字 [])转换为数字数组(整数值 [])

import java.util.Scanner;

public class stringtoint {

    public static void main (String args[]) {
        Scanner in=new Scanner(System.in);
        String number[]=new String[100];
        int value[]= new int[100]; // here I declared an array of integers with the name value
        int sum=0;
        for(int x= 0;x <= 1; x++)
        {
            System.out.print("input number : ");
            number[x]=in.next();
            value[x]= Integer.parseInt(number[x]); // i found "expected here", what should i do, need help, please..
            sum=sum + value[x];
        }
        for(int x=0; x<=1; x++)
        {
            System.out.println("Data Number "+(x+1)+" : "+number[x]);   
        }
        System.out.println("Sum :\t "+sum); 
    }

}

【讨论】:

    【解决方案2】:

    使用in.nextInt() 方法。

    Scanner in = new Scanner(System.in);
            int number[] = new int[100];
            int sum = 0;
            for (int x = 0; x <= 1; x++) {`enter code here`
                System.out.print("input number : ");
                number[x] = in.nextInt();
                sum = sum + number[x];
            }
            System.out.println("Sum :\t " + sum);
            in.close();
        }
    

    【讨论】:

    • 尝试 { id = Integer.parseInt(stringValue); } 捕捉(NumberFormatException ex){ }
    【解决方案3】:

    创建一个 int 数组,然后使用它。 int value[x]= Integer.parseInt(number[x]); 是一个错误,因为您正在尝试将整数分配给数组。

    正确的可能是……

    public static void main (String args[]) {
                Scanner in=new Scanner(System.in);
                String number[]=new String[100];
                int value[]= new int[100];
                int sum=0;
                for(int x=0;x<=1;x++)
                {
                    System.out.print("input number : ");
                    number[x]=in.next();
                    value[x]= Integer.parseInt(number[x]);
                    sum=sum+value[x];
                }
    
                for(int x=0;x<=1;x++)
                {
                    System.out.println("Data Number "+(x+1)+" : "+number[x]);   
                }
                    System.out.println("Sum :\t "+sum); 
            }
    

    【讨论】:

      【解决方案4】:

      您的示例代码中变量的声明和使用似乎存在问题。

      1. 变量 x 未初始化
      2. 一个整数值被分配给数组声明。

      试试下面的代码来解决你的问题。

      import java.util.Scanner;
      
      public class stringtoint {
      
          public static void main(String args[]) {
              Scanner in = new Scanner(System.in);
              String number[] = new String[100];
              int sum = 0;
      
              for (int x = 0; x <= 1; x++) {
                  System.out.print("input number : ");
                  number[x] = in.next();
                  int value = Integer.parseInt(number[x]);
                  sum = sum + value;
              }
      
              for (int x = 0; x <= 1; x++) {
                  System.out.println("Data Number " + (x + 1) + " : " + number[x]);
              }
              System.out.println("Sum :\t " + sum);
              in.close();
          }
      }
      

      【讨论】:

        【解决方案5】:
        public static void main(String args[]) {
            String[] exampleOfStringArray = {"11", "22", "33"/*, "ab", "cd", "ef", "", null*/};
            int[] intArray = getIntArray(exampleOfStringArray);
            int sum = getSumOf(exampleOfStringArray);
        }
        
        private static int[] getIntArray(String... stringArray) /*throws NumberFormatException*/ {
            return Arrays.<String>asList(stringArray).stream().mapToInt(Integer::parseInt).toArray();
        }
        
        private static int getSumOf(String... stringArray) /*throws NumberFormatException*/ {
            return Arrays.<String>asList(stringArray).stream().mapToInt(Integer::parseInt).sum();
        }
        

        【讨论】:

          【解决方案6】:

          试试下面的代码,它工作正常。

          public static void main(String[] args) {
              Scanner in = new Scanner(System.in);
              String number[] = new String[100];
              int sum = 0;
              int noOfInputs = 2;
              int value[] = new int[noOfInputs];
              for (int x = 0; x <= noOfInputs-1; x++) {
                  System.out.print("input number : ");
                  number[x] = in.next();
                  value[x] = Integer.parseInt(number[x]);
                  sum = sum + value[x];
              }
              for (int x = 0; x <= noOfInputs-1; x++) {
                  System.out.println("Data Number " + (x + 1) + " : " + number[x]);
              }
              System.out.println("Sum :\t " + sum);
          
          }
          

          【讨论】:

            猜你喜欢
            • 2016-06-09
            • 1970-01-01
            • 2018-03-04
            • 2013-08-01
            • 2023-02-21
            • 1970-01-01
            • 2018-07-04
            • 2014-01-17
            • 1970-01-01
            相关资源
            最近更新 更多