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)


基础教程推荐
- 大摇大摆的枚举 2022-01-01
- 验证是否调用了所有 getter 方法 2022-01-01
- 如何在 Spring @Value 注解中正确指定默认值? 2022-01-01
- 从 python 访问 JVM 2022-01-01
- 如何在 JFrame 中覆盖 windowsClosing 事件 2022-01-01
- 在 Java 中创建日期的正确方法是什么? 2022-01-01
- 不推荐使用 Api 注释的描述 2022-01-01
- 多个组件的复杂布局 2022-01-01
- Java 实例变量在两个语句中声明和初始化 2022-01-01
- Java Swing计时器未清除 2022-01-01