本文介紹了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)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,