当前位置:   article > 正文

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

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

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


解决思路:

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

转换整型有以下的方式

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

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

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

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

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

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

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

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

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

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

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

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

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


代码示例:

  1. package a4_2024_07;
  2. import java.util.Scanner;
  3. /**
  4. * 现有一串字符(长度不超过255个字符)
  5. * 需对其中的数值字符求和(需转换成整型进行计算)。
  6. */
  7. public class j240725_3 {
  8. public static void main(String[] args) {
  9. Scanner sc = new Scanner(System.in);
  10. System.out.println("请输入字符串:");
  11. String str = sc.nextLine();
  12. int sum = 0;
  13. for (int i = 0; i < str.length(); i++) {
  14. if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {
  15. int digitValue = Character.digit(str.charAt(i), 10); // 将字符转换为对应的数字值, 10进制
  16. sum += digitValue;
  17. }
  18. }
  19. System.out.println("字符串中数值字符的和为:" + sum);
  20. }
  21. }

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号