Как разбить последовательность строк и преобразовать каждый элемент в двойной

1

Я застрял в проблеме для своего класса программирования. Нам нужно отделить аргумент String от запятых, чтобы создать массив строк, тогда ему нужно проанализировать каждую отдельную строку, чтобы получить двойную, сохраняя эти двойные ряды последовательно. Нам также дается некоторый тестовый код с входными аргументами типа ("1,5").

Вот мой текущий код

public class Sequence
{

private double[] sequence;

public Sequence(String s)
{ 
  String[] res = s.split(",");

  int length = res.length;

  double[] result = new double[length];

  for ( int i =0; i<length; i++) {

  result[i] = Double.parseDouble(res[i])

  }

 }

Я не уверен, куда идти отсюда, потому что, когда я проверяю свой код, он доцент дает ожидаемый результат. Что это означает, что хранилище последовательно?

  • 0
    Вы сохраняете проанализированный результат в локальной переменной ...
  • 0
    Я думаю, что я получил его на работу, вместо создания результата массива, я поставил sequence = new double [length]; и изменил результат [i] в цикле for на последовательность [i]
Теги:
string
arrays
for-loop
double

3 ответа

2

Я обновил свой ответ, это может быть то, что вы ищете:

import java.util.Arrays;

public class Four {

    public static void main(String[] args) {

        String string = "1,2,10,4,9";

        System.out.println(string);

        double[] ds = getDouble(string);

        for (int i = 0; i < ds.length; i++) {
            System.out.println(ds[i]);
        }

    }

    private static double[] getDouble(String string) {
        double[] _double;
        String[] _Strings = string.split(",");

        _double = new double[_Strings.length];

        for (int i = 0; i < _Strings.length; i++) {
            _double[i] = Double.parseDouble(_Strings[i]);
        }
        Arrays.sort(_double);
        return _double;
    }

}

вне положить Изображение 174551

  • 2
    Для будущих читателей будет полезно, если вы прокомментируете свой код или попытаетесь объяснить, что он делает. Именование переменных не помогает. :п
  • 0
    @Unihedro, спасибо за редактирование, я буду иметь это в виду, я понимаю, что именование переменных может раздражать, когда кто-то еще читает, Спасибо :)
1

Я бы сделал это так:

public class Sequence {

    private double[] sequence;

    public void createSequence(int sequenceLength) {
        sequence = new double[sequenceLength];
    }

    public void addToSequence(int index, double value) {
        sequence[index] = value;
    }

    public double parseDouble(String s) {
        return Double.parseDouble(s);
    }

    public String[] splitString(String s) {
        return s.split(",");
    }

    @Override
    public String toString() {
        return Arrays.toString(sequence);
    }

    public static void main(String[] args) {
        String str = "10.10,20.20,30.30";

        Sequence sequence = new Sequence();
        String[] splitted = sequence.splitString(str);
        sequence.createSequence(splitted.length);

        for (int i = 0; i < splitted.length; i++) {
            double doubleValue = sequence.parseDouble(splitted[i]);
            sequence.addToSequence(i, doubleValue);
        }

        System.out.println(sequence);
    }
}
0

изменить private double[] sequence; к private Double[] sequence; и используйте ниже код

public class Sequence {

    private Double[] sequence;

    public Sequence(String s) {
        String separated[] = s.replace(" ", "").split(",");
        ArrayList<Double> list = new ArrayList<>();
        for (String num : separated) {
            list.add(Double.parseDouble(num));
        }
        this.sequence = list.toArray(new Double[separated.length]);
    }

}

Ещё вопросы

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