当前位置: 首页 > 知识库问答 >
问题:

Java:在设置字符串中字符位置的值时,我收到了一个意外的类型错误(required:variable;found:value)

阳宾实
2023-03-14
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

共有1个答案

叶卓君
2023-03-14

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();
    }
 类似资料:
  • 我有一个varchar字段,存储类似的日期 我需要将这些值更改为

  • 我正在创建一个程序,它接受用户输入并生成一张去音乐会的门票。为此,在其中一个文本字段中,用户输入他的全名。然后程序获取文本字段的内容并将其设置为字符串音乐会观众。为了获取用户的首字母,我使用String Tokenizer将音乐会观众拆分为firstName、middleName和lastName字符串,然后使用子字符串从每个字符串中获取第一个字母。 我希望程序能够处理例外情况,如果用户只在文本字

  • 我正在尝试将java绑定到一个Xamarin forms项目,该jar包含具有$的类名和具有$的变量名。我得到“意外字符$”错误。我试图通过编辑metadata.xml文件来解决这个问题。看来我做错了,请检查以下条目, 对于包含$的类名。我在用, 提前感谢,

  • 诸葛io的用户属性的属性类型包括字符串、数值、日期三种,您可以在「数据接入」模块儿中的「埋点管理」页面对用户属性的属性类型进行修改。 下面将重点介绍数值型属性: 一、数字类型属性的计算 在添加事件属性时,需注意事件属性类型。如事件属性类型为「数值型属性」,需要在上传数据时修改数据类型为「数值型」,并且在诸葛io后台埋点管理中修改为「数值型」。 事件的数字型属性计算功能,让你可以将事件的数字属性作为

  • 问题内容: 下面是我的表 当我执行 我的位置是1。 我要实现的是找到整数的第一个位置,这样我将获得以下输出。 任何想法我怎么能做到这一点? 问题答案: 在xdazz答案的帮助下,我做了一些更改,最后得到了答案… 演示版

  • 问题内容: 我收到此错误: JSON.parse:意外字符 当我在firebug中运行以下语句时: 为什么会这样呢?JSON字符串对我来说似乎是正确的,我也使用JSHint对其进行了测试。在上述情况下,传递的对象是服务器响应,其内容类型设置为 问题答案: 您不是在解析字符串,而是在解析一个已经解析的对象:)