You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java大写字符转ASCII值问题求助:代码始终返回65

问题分析与解决

核心问题

你代码里的int ascii = (int) character;是在用户输入字符之前执行的,所以这个变量只会保存初始值'A'的ASCII码65,后续用户输入新字符后,ascii没有重新计算,导致输出永远是65。

另外,局部变量character必须显式初始化,直接声明char character;会报错,这是Java的语法要求——局部变量在使用前必须被赋值。

修正后的代码

import java.util.Scanner;
public class CharConvertor
{
    public static void main (String[] args)
    {
      Scanner input = new Scanner(System.in);

      // 初始化默认值,满足Java局部变量初始化要求
      char character = ' ';
      
      System.out.println("Please enter an uppercase character: ");
      character = input.next().charAt(0); 
      
      // 在用户输入后计算正确的ASCII值
      int ascii = (int) character;
      // 转换为小写,用内置方法更安全通用
      char lowerCaseChar = Character.toLowerCase(character);
      
      System.out.println(character + " in ASCII is " + ascii + ".");
      System.out.println("Its lowercase equivalent is: " + lowerCaseChar);
    }
}

关键修改点

  • 将ascii的计算逻辑移到用户输入字符之后,确保基于用户实际输入的值计算ASCII码。
  • 给character设置初始占位符,避免未初始化错误。
  • 新增小写转换功能,使用Java内置的Character.toLowerCase()方法,比手动加减数值更适配所有字符场景。

内容的提问来源于stack exchange,提问作者user21426307

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:32:41