Как в методе, принимающий на вход массив строк, вывести строку - список названий товаров, цена которых меньше чем 200?

Метод public String getCheapStocks(String[] stocks). Он принимает на вход массив строк. Каждая строка состоит из названия товара, и его цены, разделенных одним пробелом.

Нужно вернуть одну строку, где ровно через один пробел собраны названия товаров, цена которых меньше чем 200 единиц.

Вызов getCheapStocks(new String[] {"gun 500", "firebow 70", "pixboom 200","strawberry 180"}) возвращает "firebow strawberry".

Использовать можно только цикл for.

public class CheapStocks {

    public String getCheapStocks(String[] stocks) {
        //String string  = null;


        for (String stock : stocks) {
            String[] str = stock.split(" ");
            String string = str[0];
            int number = Integer.parseInt(str[1]);

            if (number < 200) {
                return String.join(" ", string);
            }
        }
        return 
    }

    public static void main(String[] args) {
        CheapStocks cheap = new CheapStocks();

        cheap.getCheapStocks(new String[] {"gun 500", "firebow 70", "pixboom 200", "strawberry 180"});
    }
}

Ответы (1 шт):

Автор решения: had0uken

Напрашивается вариант со Стрингбилдером: Вы берете каждый элемент массива, разделяете его на "название" и "число" с помощью метода split(). Получаете подмассив, где [0] элемент - наименование, а [1]-"число". И если "число" удовлетворяет условию - добавляете наименивание в объект типа стрингбилдер(фактически строку).

public class CheapStocks {

    public String getCheapStocks(String[] stocks) {
        StringBuilder sb = new StringBuilder();
        for(String s: stocks)
        {
            String [] str = s.split(" ");
            if(Integer.valueOf(str[1])<200)
                sb.append(str[0]+" ");
        }
        return sb.toString();
  }

    public static void main(String[] args) {
        CheapStocks cheap = new CheapStocks();

        //cheap.getCheapStocks(new String[] {"gun 500", "firebow 70", "pixboom 200", "strawberry 180"});

        System.out.println(cheap.getCheapStocks(new String[]{"gun 500", "firebow 70", "pixboom 200", "strawberry 180"}));
    }
}

Выход:

firebow strawberry 

Process finished with exit code 0
→ Ссылка