Java:设置字符串中字符位置的值时收到意外类型错误(Required:Variable;Found:Value) [英] Java: I am receiving an unexpected type error(required: variable; found: value) when setting the value of a character location in a string

查看:35
本文介绍了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)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆