Преобразование строки [] в аргументы. INT / удвоить в Java?

1

Я пытаюсь преобразовать основные программы "String [] args" в 5 ints и 4 double. (я знаю, что это путают)

То, как я думал об этом, заключалось в том, чтобы цикл forreach перебирался через String args [] и добавлял их в массив int (для первых 5), однако мне приходилось использовать для массива, поэтому он не работает.

if (args != null) {
        // If arguments where given, use the arguments and run the program
        // NEED TO SOMEHOW CONVERT ARGS INTO INTEGER FORM AFTER BEING PASSED IN
        ArrayList<Integer> valArr = new ArrayList<Integer>(10); // could be 9
        for (String val : args) {
            // Parse the string and add it to valArray
            int temp = Integer.parseInt(val);
            valArr.add(temp);
        }



        CarPark cp = new CarPark(valArr[0], valArr[1], valArr[2], valArr[3]);   

это то, что я сейчас смотрю... я совершенно не прав? или закрыть?

  • 0
    Почему вы не можете использовать for (int i = 0; i < 5; i++) ?
  • 1
    Вы собираетесь конвертировать последние 4 двойных числа в int, и таким образом получите NumberFormatException
Показать ещё 3 комментария
Теги:

5 ответов

1
Лучший ответ

Просто проанализируйте его двумя индексами for циклов.

int[] myInts = new int[5];
double[] myDoubles = new double[4];

// Initialize these arrays with "defaults" here.

// Notice how we handle the possibility of the user not entering enough values.
for (int i = 0; i < Math.min(5, args.length); i++)
    myInts[i] = Integer.parseInt(args[i]);

for (int i = 0; i < Math.min(4, args.length - 5); i++)
    myDoubles[i] = Double.parseDouble(args[i+5]);

CarPark cp = new CarPark(myInts[0], myInts[1], myInts[2], myInts[3]);   
  • 0
    Начнут ли «mydoubles» в [0] первый дубль или в 5 или 6?
  • 0
    @ user2926862, левая сторона начинается с [0] , но начинает читать с args[5] .
Показать ещё 2 комментария
0

Вот ваш исправленный код: -

import java.util.ArrayList;
import java.util.Scanner;

    public class Main {

        public static void main(String args[]){


            Scanner sc=new Scanner(System.in);
        args=new String[4];
            for(int i=0;i<4;i++){
            System.out.println("Enter value no- "+(i+1));
            args[i]=sc.nextLine();
        }
             ArrayList<Integer> valArr = new ArrayList<Integer>(10);
            if (args != null) {
            // If arguments where given, use the arguments and run the program
            // NEED TO SOMEHOW CONVERT ARGS INTO INTEGER FORM AFTER BEING PASSED IN
            // could be 9
            for (String val : args) {
                // Parse the string and add it to valArray
                int temp = Integer.parseInt(val.trim());
                valArr.add(temp);
            }
        }
            System.out.println(valArr);
            //CarPark cp = new CarPark(valArr[0], valArr[1], valArr[2], valArr[3]); 
        }
        }

Это всего лишь код для целочисленной части аналогичным образом, вы можете расширить длину массива аргументов и включить двойные значения, Remeber для использования val.trim() для удаления пробелов, иначе он выкинет NumberFormatException.

0

посмотреть на ArrayList Doc

выше может быть так

CarPark cp = new CarPark(valArr.get(0), valArr.get(1), valArr.get(2), valArr.get(3));
  • 0
    @IwishIcouldthinkofagood Я не знаю, когда он написал. пока я печатаю этого парня. Я не несу ответственности за это.
0

Я думаю, что это должно сработать.

if (args != null) {
        // If arguments where given, use the arguments and run the program
        // NEED TO SOMEHOW CONVERT ARGS INTO INTEGER FORM AFTER BEING PASSED IN
        ArrayList<Integer> valArr = new ArrayList<Integer>(10); // could be 9
        for (String val : args) {
            // Parse the string and add it to valArray
            int temp = Integer.parseInt(val);
            valArr.add(temp);
        }
CarPark cp = new CarPark(valArr.get(0), valArr.get(1), valArr.get(2), valArr.get(3));
0

вам нужно получить значения из списка массивов, как указано ниже

CarPark cp = new CarPark(valArr.get(0), valArr.get(1), valArr.get(2), valArr.get(3));
  • 0
    вы получаете какие-либо NumberFormatException в любом месте?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню