Java: I am receiving an unexpected type error(required: variable; found: value) when setting the value of a character location in a string(Java:设置字符串中字符位置的值时收到意外类型错误(Required:Variable;Found:Value))
问题描述
public static void octIn(String[] input, String octString)
{
String strString, biString;
String[] str = new String[2];
//Octal to Binary
biString = Integer.toBinaryString(Integer.parseInt(octString, 8));
//Binary to String
String[] bi = splitBi(biString);
for (int i = 0; i < 3; i++)
{
for (int x = 0; x < 3; x++)
{
if (bi[i].charAt(x) == 0)
str[i].charAt(x) = '-';
else
{
switch(x)
{
case 0:
str[i].charAt(x) = 'r';
break;
case 1:
str[i].charAt(x) = 'w';
break;
case 2:
str[i].charAt(x) = 'x';
break;
}
}
}
}
}
我想知道为什么会出现以下错误,以及如何修复它:
ACSL1.java:36: error: unexpected type
bi[i].charAt(x) = '1';
^
required: variable
found: value
注意:正在显示其他内容,但我认为也显示这些内容将是多余的。
推荐答案
str[i].charAt(x)是char值,不是变量。你不能给它赋值。类似于写'a' = '1';。
无论如何,字符串是不可变的,所以您不能修改它的字符。
如果希望str[i]具有新的字符串值,则必须创建一个新字符串(例如,通过将字符追加到StringBuilder)并将新字符串分配给str[i]。
for (int i = 0; i < 3; i++)
{
StringBuilder sb = new StringBuilder();
for (int x = 0; x < 3; x++)
{
if (bi[i].charAt(x) == 0)
sb.append('-');
else
{
switch(x)
{
case 0:
sb.append('r');
break;
case 1:
sb.append('w');
break;
case 2:
sb.append('x');
break;
}
}
}
str[i] = sb.toString();
}
这篇关于Java:设置字符串中字符位置的值时收到意外类型错误(Required:Variable;Found:Value)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Java:设置字符串中字符位置的值时收到意外类型错误(Required:Variable;Found:Value)
基础教程推荐
- 存储 20 位数字的数据类型 2022-01-01
- Struts2 URL 无法访问 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- 如何对 Java Hashmap 中的值求和 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- RabbitMQ:消息保持“未确认"; 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- 使用堆栈算法进行括号/括号匹配 2022-01-01
