Java代码基础算法练习-数值求和-2024.07.25

任务描述:
现有一串字符(长度不超过255个字符),需对其中的数值字符求和(需转换成整型进行计算)。


解决思路:

输入字符串,循环对每个字符否为数字,转换整型并求和

转换整型有以下的方式

1. sum += str.charAt(i) - '0';

这种方法利用了字符的 Unicode 值。字符 '0''9' 的 Unicode 值是连续的,而且 '0' 的 Unicode 值正好对应数字 0。因此,当你从一个数字字符减去 '0' 时,你实际上得到了该字符代表的数字。

char c = '5';
int num = c - '0'; // num 的值为 5

2. int digitValue = Character.digit(str.charAt(i), 10);

Character.digit() 方法用于从一个字符中提取它的

char c = '5';
int numericValue = (int) Character.getNumericValue(c); // numericValue 的值为 5

数字值。它接受两个参数:要转换的字符和基数(通常为 10 表示十进制)。该方法会返回字符的数字值。

char c = '5';
int digitValue = Character.digit(c, 10); // digitValue 的值为 5

3. int intValue = Integer.parseInt(String.valueOf(str.charAt(i)));

Integer.parseInt() 方法用于从一个字符串中解析出整数。首先,我们需要将字符转换为一个长度为 1 的字符串,然后使用 Integer.parseInt() 方法来获取整数值。

char c = '5';
String singleCharString = String.valueOf(c); // singleCharString 的值为 "5"
int intValue = Integer.parseInt(singleCharString); // intValue 的值为 5

4. int numericValue = (int) Character.getNumericValue(str.charAt(i));

Character.getNumericValue() 方法用于从一个字符中提取它的数字值。它返回一个 float 类型的值,但是当我们处理数字字符时,返回值通常是一个整数,可以安全地转换为 int 类型。


代码示例:

package a4_2024_07;

import java.util.Scanner;

/**
 * 现有一串字符(长度不超过255个字符)
 * 需对其中的数值字符求和(需转换成整型进行计算)。
 */
public class j240725_3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串:");
        String str = sc.nextLine();

        int sum = 0;
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {
                int digitValue = Character.digit(str.charAt(i), 10); // 将字符转换为对应的数字值, 10进制
                sum += digitValue;
            }
        }
        System.out.println("字符串中数值字符的和为:" + sum);
    }
}

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨空集

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值