点计数器问题

时间:2014-03-05 18:09:32

标签: java

我有一个家庭作业,要求我编写一个计算输入行中点数的程序。到目前为止,这是我所提出的它的工作(有点),除了它计算一切而不是只有点。我很困惑如何让程序只计算点数。

import javax.swing.*;
import java.lang.Character;

public class Assign5_Polk {
    public static void main(String[] args) {
        String string = JOptionPane.showInputDialog("Give me dots and i will count them : ");
        int count = 0;
        for (int i = 0; i< string.length(); i++) {
            char c = string.charAt(i);
            if (string.contains(".")) {
                count++;
            }
        }
        System.out.println("There are" + " "+ count + " " + "dots" +" " + "in this string. " + string);
    }
}

4 个答案:

答案 0 :(得分:5)

if (string.contains("."))

这一行检查整个字符串,如果其中有.,则返回true。

相反,您想测试c是否为.

答案 1 :(得分:2)

更改if条件如下:

if (string.contains(".")) { // Check whole String contain dot
 count++;
}

 if (c == '.') { //Check single char of String contain dot
     count++;
    }

答案 2 :(得分:0)

在for循环中,您反复测试整个字符串是否有点,并且每次都递增计数器。您需要if (c == '.')之类的内容来确定您正在查看的角色是否为点。

答案 3 :(得分:0)

解决方案没有循环; - )

 count = string.replaceAll("[^.]","").length();

这使你的程序很短:

public static void main(String[] args) {
    String string = JOptionPane.showInputDialog("Give me dots and i will count them : ");
    int count = string.replaceAll("[^.]","").length();
    System.out.println("There are "+ count + " dots in this string: " + string);
}