Как в методе, принимающий на вход массив строк, вывести строку - список названий товаров, цена которых меньше чем 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 шт):
Напрашивается вариант со Стрингбилдером: Вы берете каждый элемент массива, разделяете его на "название" и "число" с помощью метода 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