如何制作任意数量的变量(Java)

时间:2012-08-17 03:41:02

标签: java variables

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

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的最大值...我该怎么做?

6 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

Map<String,Integer> map=new HashMap<String,Integer>();

答案 2 :(得分: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教程......但它们更多地针对已经知道如何编程的人。

答案 3 :(得分:0)

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

答案 4 :(得分: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;     
} 

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

答案 5 :(得分:0)

你想要的字母是java中的chars

试试这个:

char[] letters = new char[w.length()];
for (int i = 0; i < w.length(); i++){
    letters[i] = w.charAt(i);
}