有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数组中的Java字符计数

我试图解决的另一个问题(注意这不是家庭作业,而是突然出现在我脑海中的问题),我正在努力提高我在Java中解决问题的技能。我想显示以下内容:

学生ID#
卡罗尔·麦卡内920 11
詹姆斯·伊洛尔154 10
Elainee Black 462 12

我想做的是在第三列,显示字符数,而不计算空格。给我一些建议来做这件事。或者让我看看Java的健壮API,因为我还不太熟悉Java的字符串API。谢谢


共 (4) 个答案

  1. # 1 楼答案

    把解决一个问题和给出答案看作两个截然不同的步骤。我不会帮助您在表格中进行演示,但要计算字符串中的字符数(不带空格),您可以使用以下方法:

    String name = "Carol McKane";
    int numberOfCharacters = name.replaceAll("\\s", "").length();
    

    正则表达式\\s匹配name字符串中的所有空白字符,并将它们替换为"",或者不匹配

  2. # 2 楼答案

    要了解更多信息,您应该查看StringCharacter的API文档

    下面是一些如何执行的示例:

    // variation 1
    int count1 = 0;
    for (char character : text.toCharArray()) {
        if (Character.isLetter(character)) {
            count1++;
        }
    }
    

    这使用了“for”指令的特殊缩写。下面是一个较长的表格,以便更好地理解:

    // variation 2
    int count2 = 0;
    for (int i = 0; i < text.length(); i++) {
        char character = text.charAt(i);
        if (Character.isLetter(character)) {
            count2++;
        }
    }
    

    顺便说一句,通过replace方法删除空白对我来说不是一种好的编码风格,对理解string类的工作方式也不是很有帮助

  3. # 3 楼答案

    可能是最短最简单的方法:

        String[][] students = { { "Carol McKane", "James Eriol", "Elainee Black" }, { "920", "154", "462" } };
    
    
        for (int i = 0 ; i < students[0].length; i++) {
            System.out.println(students[0][i] + "\t" + students[1][i] + "\t" + students[0][i].replace( " ", "" ).length() );
        }
    

    replace(),替换字符串的每个子字符串(“”),并将其从返回的结果中删除,从这个时态字符串中,不带空格,您可以通过对其调用length()来获取长度。。。 字符串名称将保持不变

    http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

    干杯

  4. # 4 楼答案

    听起来你只是想要这样的东西:

    public static int countNonSpaces(String text) {
        int count = 0;
        for (int i = 0; i < text.length(); i++) {
            if (text.charAt(i) != ' ') {
                count++;
            }
        }
        return count;
    }
    

    您可能希望将其修改为使用^{},而不是只检查' '。还请注意,这将把基本多语言平面之外的对计算为两个字符。这是否会成为您的问题取决于您的用例