我在计算字符串数组中每个单词的字母时遇到一些困难。谁能给我一些提示?也许我也可以使用整数到字符串方法?
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;
}
答案 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;
}