代码之家  ›  专栏  ›  技术社区  ›  Orest Dymarchuk

如何拆分索引中包含整数和字母的字符串数组

  •  0
  • Orest Dymarchuk  · 技术社区  · 2 年前

    大家好 我是Java新手,目前正在学习数组和循环。我有一个有趣的家庭作业,我很困惑。 我不知道该拿这个怎么办。所以我需要你的建议。

    在其中创建一个公共字符串getCheapStocks(String[]stocks)方法。它接受字符串数组作为输入。每一行由产品名称和价格组成,用一个空格隔开。

    该方法返回一个字符串——价格低于200的产品名称列表。 而getCheapStocks(新字符串[]{“gun 500”、“firebow 70”、“pixboom 200”)返回“firebow”。

    只有for循环可以使用。

    我找到了一个可以拆分字符串的方法:

    String text=“123 456”

    String[]parts=文本。拆分(“”)

    int number1=整数。parseInt(部分[0])//123

    int number2=整数。parseInt(parts[1])//456

    但当我有“gun 500”时,我只能把它分成两条线。我无法与200相比。我的代码乱七八糟,一无所获。

    我真的很感激任何提示或建议,提前谢谢!

    public static String getCheapStocks(String[] stocks) {
        
        //MESS!
        int max = 200;
        
        for(int i = 0; i < stocks.length; i++) {
            String txt = stocks[i];
            String[] parts = txt.split(" ");
            int number1 = Integer.parseInt(parts[0]);
            int number2 = Integer.parseInt(parts[1]);
            
                if(number1 < max) { 
                
            }
        }
    }
    
    public static void main(String[] args) {
    
        //returns "firebow"
        System.out.println(getCheapStocks(new String[] {"gun 500", "firebow 70", "pixboom 200"}));
        
    }
    

    }

    2 回复  |  直到 2 年前
        1
  •  2
  •   Ervin Szilagyi    2 年前

    因为你的输入是以 "<stock> <price>" ,将其拆分为两部分后,只需将第二部分转换为整数,否则会出现异常。

    public static String getCheapStocks(String[] stocks) {
        // Use a StringBuilder to hold the final result
        StringBuilder result = new StringBuilder();
        for (String stock : stocks) {
            String[] parts = stock.split(" ");
            // If the price is lower than 200, append part[0] (stock name) to the result
            if (Integer.parseInt(parts[1]) < 200) {
                result.append(parts[0]).append(" "); // Append also a space character for dividing the stocks
            }
        }
        // Strip the space from the end
        return result.toString().trim();
    }
    
        2
  •  1
  •   Kai-Sheng Yang    2 年前
    public static String getCheapStocks(String[] stocks) {
        int maxPrice = 200;
        List<String> results = new ArrayList<>();
    
        for (String txt : stocks) {
            String[] parts = txt.split(" ");
            String stockName = parts[0];
            int price = Integer.parseInt(parts[1]);
    
            if (price < maxPrice) {
                results.add(stockName);
            }
        }
        return String.join(" ", results);
    }