小丹尼King 2021-07-19 09:10 采纳率: 100%
浏览 145
已采纳

a.charAt(i)=a.charAt(j) 问题在哪?

public static void main(String args[]){
    String a="abc";
    char temp=0;
    for (int i = 0,j=a.length()-1;i<j; i++,j--) {
        temp=a.charAt(i);
        a.charAt(i)=a.charAt(j);
        a.charAt(j)=temp;
    }
    for (int i = 0,j=a.length()-1;i<j; i++,j--) {
        System.out.print(a.charAt(i));
    }
}

字符串做反转 思路是字符串第一个和最后个进行交换 但是现在报错a.charAt(i)=a.charAt(j); a.charAt(j)=temp说是应为变量 不太明白这个意思 ;请问这个思路错在哪? (其他方法我知道 我只想知道这个思路错在哪里)

  • 写回答

4条回答 默认 最新

  • 走一步-再走一步 2021-07-19 09:18
    关注

    我们先看看charAt的源码

        public char charAt(int index) {
            if ((index < 0) || (index >= value.length)) {
                throw new StringIndexOutOfBoundsException(index);
            }
            return value[index];
        }
    

    就是就是返回数组下标index的char 元素,比如 String a="abc"; a.charAt(1)--> 'b',这不是一个变量而是一个char 字符
    a.charAt(i)=a.charAt(j); ---> 你给一个char 字符赋值 当然不允许

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已采纳回答 7月19日
  • 创建了问题 7月19日

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号