-3

在我的程序中,我想让变量的数量等于一个单词中的字母数。这是我尝试过的:

import java.util.*;
public class CountString {
public static void main(String args[]){
    String w;
    Scanner raj = new Scanner(System.in);
    System.out.print("Word? ");
    w=raj.next();
    for(int i=0; i<w.length(); i++){
        int k_i=1;
    }
    for(int i=0; i<w.length(); i++){
        System.out.print(k_i);
    }

}

}

我得到的错误是 k_i 无法解析为变量。我将如何以指定的方式制作变量?并说我想打印所有 k_i 的最大值......我该怎么做?

4

6 回答 6

2

使用 anArrayList<Integer>来保存值。使用 for 循环遍历它以打印扫描的值。

于 2012-08-17T03:46:22.050 回答
2

您可以创建一个Map来存储key-value对。

Map<String,Integer> map=new HashMap<String,Integer>();
于 2012-08-17T03:46:53.417 回答
2

您的问题的核心是您正在尝试动态定义变量。虽然有些语言支持这种东西,但 Java 不支持。它从来没有,也永远不会。

所以你需要找到一种替代方法来做你想做的事情。例如,以下是您的示例到真实 Java 的直译:

w = raj.next();
int k[] = new int[w.length()];
for(int i = 0; i < k.length; i++){
    k[i] = 1;
}
for(int i = 0; i < l.length; i++){
    System.out.print(k[i]);
}

并说我想打印所有 k_i 的最大值......我该怎么做?

通过迭代 k[i] 寻找最大的。


我的印象是,您通常是编程新手,尤其是 Java 编程新手。我建议你去当地的书店买一本关于 Java 编程的介绍性教科书。您也可以访问 Oracle 网站并学习 Java 教程……但它们更多地针对已经知道如何编程的人。

于 2012-08-17T03:52:59.217 回答
0

我会将每个整数推到一个ArrayList而不是。然后,您可以使用 for 循环遍历列表,并使用该Collections.max方法查找存储值的最大值。

于 2012-08-17T03:46:24.450 回答
0

我得到的错误是 k_i 无法解析为变量。我将如何以指定的方式制作变量?

k_i 的生命周期以循环结束,在循环之外声明它,以便定义在主范围内保持有效。

并说我想打印所有 k_i 的最大值......我该怎么做?

int k_i=0;
for(int i=0; i<w.length(); i++)
{ 
       k_i= k_i<i?i:k_i;     
} 

我不明白你的其余要求!!!

于 2012-08-17T03:47:03.983 回答
0

你想要字母,它们是chars在 java 中的。

尝试这个:

char[] letters = new char[w.length()];
for (int i = 0; i < w.length(); i++){
    letters[i] = w.charAt(i);
}
于 2012-08-17T03:54:07.013 回答