[英]Java: I am receiving an unexpected type error(required: variable; found: value) when setting the value of a character location in a string
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]
具有新的String值,則必須創建一個新的String(例如,通過將字符附加到StringBuilder)並將新的String分配給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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.