Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于带有字符数组的for循环的基本问题(Java)_Java - Fatal编程技术网

关于带有字符数组的for循环的基本问题(Java)

关于带有字符数组的for循环的基本问题(Java),java,Java,我的任务是通过用户输入并将其转换为总和。其思想是将所有字母更改为相应的数字,如a=1等 我的想法是将用户的响应转换为一个字符数组,然后循环每个字符,然后使用一个开关或多个循环来获取值,但我甚至不能让for循环工作,因为我得到的是“不能调用数组类型char[]上的charAt(int)” 公开课问题3{ 公共静态void main(字符串[]args){ 扫描仪用户类型=新扫描仪(System.in); 字符串字值; 系统输出打印(“请输入字符串”); wordValue=userTypes.ne

我的任务是通过用户输入并将其转换为总和。其思想是将所有字母更改为相应的数字,如
a=1

我的想法是将用户的响应转换为一个字符数组,然后循环每个字符,然后使用一个开关或多个循环来获取值,但我甚至不能让for循环工作,因为我得到的是
“不能调用数组类型char[]上的charAt(int)”

公开课问题3{
公共静态void main(字符串[]args){
扫描仪用户类型=新扫描仪(System.in);
字符串字值;
系统输出打印(“请输入字符串”);
wordValue=userTypes.next();
字符串小写;
lowerCase=wordValue.toLowerCase();
char[]arrayConvert=小写.toCharArray();
System.out.println(arrayConvert);
整数整数;
系统输出打印(“请输入整数”);
fullNumber=userTypes.nextInt();
双小数;
系统输出打印(“请输入双精度”);
decimalNumber=userTypes.nextDouble();
双倍总数;
totalNumber=整数+小数;
System.out.print(“您的结果是”+totalNumber);
for(int i=0;i
我没有测试您的代码,但是
charAt
不是char[]方法。请尝试以下操作:

for(int i=0; i< arrayConvert.length;i++) {
    if(arrayConvert[i] == 'a'){

    }
}
for(int i=0;i
我的第一个问题,为什么你想得到一个
字符串
并转换成
int
long
。看起来你需要为所有输入编写代码(即,如果你想得到1000个值作为输入,那么你需要编写1000次代码stdout和next*操作

尝试下面的方法,它将帮助用户选择输入,并获得这些输入的总和

SumGivenInputs.java

导入java.util.array;
导入java.util.Scanner;
公共类sumputs{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.print(“输入输入数量\n”);
int noOfInput=scan.nextInt();
System.out.printf(“逐个输入%d个输入%s\n”,noOfInput,noOfInput>1?):”;
整数[]输入列表=新整数[noOfInput];
for(int i=0;i
输出:


char[]
没有定义方法
charAt
,只有字符串类型有。您可以通过索引访问数组元素,例如
arrayConvert[i]='a'
。但请注意,在代码中使用双引号
(“a”)
这将为您提供一个字符串,而不是字符。请使用单引号,并省略多余的大括号,如
'a'
中所述。如果您要比较字符串,请使用
aSring.equals(“另一个字符串”)
。深入了解数组的详细信息是值得的。允许我们通过
数组[index]访问其内容
语法。
charAt
属于
String
类,它不是
char[]
(字符串可以在内部包含
char[]
)。但是既然您已经知道
charAt
为什么不直接在字符串上调用它呢?为什么首先要创建一个数组?还有
“…”
是字符串文字,但
charAt
的结果是
char
,因此您应该将其与其他
char
进行比较。换句话说
charAt(i)=((“a”)
应该更像
charAt(i)=='a'
。谢谢你的回答。BTW
char
类型实际上是一种数字类型,它包含表示字符在Unicode表中位置的数字。因此,例如char表示的字符实际上包含
97
。数字可以相互添加,以便映射
a->1
b->2
,你可以计算差异在你的字符和
'a'
之间增加1,比如
'a'-'a'+1=0+1=1
'b'-'a'+1=1+1=2
等等。得到了“不兼容的操作数类型char和String”,实际上我改成了单引号,这似乎有效,伙计们,但熟悉字符串a之间的区别还是会有回报的nd一个字符(可能还有一个字节),这是一个。
for(int i=0; i< arrayConvert.length;i++) {
    if(arrayConvert[i] == 'a'){

    }
}
Enter the number of inputs
5
Enter the 5 inputs one by one 
10
20
30
5
50
Sum = 115