计算屏幕上的输出外观

时间:2015-01-11 11:59:49

标签: java

如何在System.out打印某些内容时计算出现次数?在我的示例用户输入TR *中,让我们说程序创建TRR; TRC; TRD,但是我无法计算输出数量(本例中为3)。如果找到0个解决方案打印出“未找到解决方案”,我想这样做。

有关如何使其发挥作用的任何提示。

if (length == 3) {
    System.out.println("Possible solutions:");
    n = 0;
    for (int i = 0; i < list3.size(); i++) {
        String s = (String) list3.get(i);
        if (s.matches(user_input))
            System.out.println(s);
    }
    System.out.println(n);
    if (n == 1) {
        System.out.println("No solutions found");
    }
}

2 个答案:

答案 0 :(得分:1)

试试这个:

package stackoverflow.counting;

import java.util.ArrayList;

public class Test {

    public static void main(String[] args) {
        ArrayList<String> list3 = new ArrayList<>();
        list3.add("TRA");
        list3.add("XXX");

        int length = 3;
        String user_input = "TR.*";

        if (length == 3) {
            System.out.println("Possible solutions:");
            int n = 0;
            for (int i = 0; i < list3.size(); i++) {
                String s = list3.get(i);
                if (s.matches(user_input)) {
                    System.out.println(s);
                    n++;
                }
            }
            System.out.println(n);
            if (n == 0) {
                System.out.println("No solutions found");
            }
        }
    }
}

输出是:

  

可能的解决方案:
  TRA
  1个

请注意,TR *可能不是您需要的正则表达式。请改用TR。*。

答案 1 :(得分:0)

尝试这种方法:

int countOfSystemPrintedOutput = 0;
if (length == 3) {
    System.out.println("Possible solutions:");
    for (String s : list3) {
        if(s.matches(user_input)){
            System.out.println(s);
            countOfSystemPrintedOutput++;
        }
    }

    if (countOfSystemPrintedOutput == 0) {
        System.out.println("No solutions found");
    }
    else{
        System.out.println("System.out.println called " + countOfSystemPrintedOutput + "times");
    }
}