字符串数组wordcount

时间:2018-05-01 16:00:43

标签: java arrays

我在计算字符串数组中每个单词的字母时遇到一些困难。谁能给我一些提示?也许我也可以使用整数到字符串方法?

    String s="Here is just an example"

应该给出像

这样的东西
       Here-4
       is-2
       just-4
 private static String[][] length(String[] array) {
    int counter=0;
    String [][] array=new String[array.length][array.length];
    String s="";

    for(int i=0;i<s.length();i++) {
        if (s.charAt(i) != ' ') {
            ++counter;
        }

      for(int i=0;i<array.length();i++) {
         for(int j=0;j<s.length();j++)
       array[i][j]=array[counter][counter]
        }
    }

        return array;

}

5 个答案:

答案 0 :(得分:1)

String s = "Here is just an example"
Arrays.asList(s.split("\\s+").stream().forEach(word -> System.out.println(word + ": " + word.length()));

这会将s拆分为空格并将其放入列表中。然后它迭代列表中的每个单词并打印单词和单词的长度。

答案 1 :(得分:1)

使用java tokenizer,

StringTokenizer st = new StringTokenizer("Here is just an example");
     while (st.hasMoreTokens()) {
         String tmp = st.nextToken();
         System.out.println(tmp.length()); // this would print the length

     }

自JDK.1.0起可用

答案 2 :(得分:0)

在尝试解决这样的问题时,您需要考虑两件事:

  • 如何拆分每个单词?
  • 如何计算每个单词的长度?

我可以通过将其分解为两个问题来解决这个问题,如上所述。

首先 - 使用String分割String#split。它接受正则表达式,但您可以使用大多数字符来帮助构建该表达式。在这种情况下,我们将使用一个特殊字符来帮助我们捕获所有空格字符 - 尤其是"\\s+"

// Assuming s is defined
String[] words = s.split("\\s+");

现在你有一个分裂,你可以遍历那个数组并获得每个数组的长度。字符串附加了.length()方法,因此您无需计算单个字符即可获得长度。

for(String word : words) {
    System.out.println(word + ": " + word.length();
}

答案 3 :(得分:0)

请尝试以下代码:

public class MyClass {
    public static void main(String args[]) {
        String s="Here is just an example";

        //first you have to break the sentence to words
        String stringArray[] = s.split("\\s");

        //then iterate each word and get the length of the word.
        for(int i=0; i<stringArray.length; i++){
            System.out.println(stringArray[i] +" - "+stringArray[i].length());
        }
    }
}
希望这会有所帮助。

<强>输出:

这里 - 4

是 - 2

只是 - 4

an - 2

示例 - 7

答案 4 :(得分:-2)

在您提供的代码中,您将String[] array作为参数传入,然后定义新的String[][] array。你不应该这样做。我假设你说你已经有一个分裂字符串的函数,那么String[] array参数就是那个数组。如果是这样,试试这个。另外,你是否有理由在没有内置功能的情况下尝试这样做?我们开发人员通常不喜欢重新发明轮子,除非有充分的理由这样做。

 private static String[][] length(String[] array) {
    String[] anotherArray = new String[array.length][];
    for(int i = 0; i < array.length; i++) {
        anotherArray[i] = array[i] + ": " array[i].length;
    }
    return array;
}