当我期望它输出 1,2,3 时,为什么此代码输出“49,50,51”

2024-01-21

package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        System.out.println("please enter a number");
        Scanner scn = new Scanner(System.in);
        int x = scn.nextInt();


        String jam = Integer.toString(x);
        int[] azure = new int[jam.length()];

        //  Char[] character = new Char[jam.length()];
        String java = Integer.toString(x);
        for(char g :java.toCharArray()){
            int i = -1;
            i++;
           int m = (int)g;
           azure[i] = m;

            System.out.println(azure[i]);
           // System.out.println(g);
        }
    }
}

当我输入数字 123 时,我希望显示单个数字 1、2、3,我知道如果我只输出 g 那么它可以工作,但我想将单个数字存储在数组中......但我不断收到 50 左右的奇怪结果像 49,50,51 这是迄今为止我遇到的最奇怪的输出哈哈...... 请帮忙...


如果你想转换char into int use Character.getNumericValue(g)

int m = (int)g不会将 1,2 或 3 分配给m相反,它会收到 ASCII 值1,2,3这是49,50,51分别。当您对数字执行加法和减法时也会发生这种情况char。所以你也可以使用这个技巧来解决你的问题。这意味着你可以这样写,它会解决你的问题 -
int m = g-'0'

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我期望它输出 1,2,3 时,为什么此代码输出“49,50,51” 的相关文章

随机推荐