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

如何将字符串转为数字?求用字符串方法实现三位整数拆分的Java方案

解答你的两个技术问题

一、如何将字符串转换为数字?

在Java里,根据目标数字类型的不同,有几种常用的转换方式:

  • 转成整数:用Integer.parseInt(String s)方法,示例:
    String numStr = "123";
    int num = Integer.parseInt(numStr);
    
  • 转成浮点数:用Double.parseDouble(String s)或Float.parseFloat(String s),示例:
    String floatStr = "123.45";
    double num = Double.parseDouble(floatStr);
    

注意:如果字符串不是合法的数字格式,这些方法会抛出NumberFormatException,实际使用时建议用try-catch块包裹处理异常。

二、作业任务:实现B部分(字符串方法)及思路对比

先聊聊你的A部分代码

你的A部分代码逻辑是没问题的,通过整数除法(/)缩小数字的位数,再用取模(%)提取对应位的数字,这是基于数字数学属性的运算思路。

B部分的实现(字符串方法)

这部分的核心思路是把输入的整数先转成字符串,直接提取字符串对应位置的字符,再将字符转换回数字。代码示例如下:

import java.util.Scanner;

public class UppgiftAttaB {
    public static void main(String[] args) {
        System.out.println("Skriv ett tal som är större än 100");
        Scanner read = new Scanner(System.in);
        int tal = read.nextInt();
        
        // 将整数转换为字符串
        String talStr = String.valueOf(tal);
        
        // 提取每一位字符并转换为数字:利用ASCII码差值,'0'的ASCII码是48,减去后得到对应数字
        int talhund = talStr.charAt(0) - '0';
        int taltio = talStr.charAt(1) - '0';
        int talen = talStr.charAt(2) - '0';
        
        System.out.println("hundra tal är " + talhund * 100);
        System.out.println("tio tal är " + taltio * 10);
        System.out.println("en tal är " + talen * 1);
    }
}

也可以用substring提取子串再转数字,写法如下(效率稍低但更直观):

int talhund = Integer.parseInt(talStr.substring(0, 1));

A和B的思路是否相似?

完全不相似:

  • A部分的核心是数值运算:依赖整数除法和取模的数学特性,逐步剥离数字的高位,提取目标位的数值,全程操作的是数字本身。
  • B部分的核心是字符序列处理:把数字看作一串字符,直接通过索引定位到对应位置的字符,再转换回数字,全程操作的是字符串/字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:21:00