赞
踩
任务描述:
现有一串字符(长度不超过255个字符),需对其中的数值字符求和(需转换成整型进行计算)。
解决思路:
输入字符串,循环对每个字符否为数字,转换整型并求和
转换整型有以下的方式
sum += str.charAt(i) - '0';
这种方法利用了字符的 Unicode 值。字符 '0'
到 '9'
的 Unicode 值是连续的,而且 '0'
的 Unicode 值正好对应数字 0。因此,当你从一个数字字符减去 '0'
时,你实际上得到了该字符代表的数字。
- char c = '5';
- int num = c - '0'; // num 的值为 5
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
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
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);
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。