在我的程序中,我想让变量的数量等于单词中的字母数。这就是我的尝试:
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的最大值...我该怎么做?
答案 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);
}