当前位置: 首页 > news >正文

[Java]PTA:jmu-Java-01入门-取数字浮点数

本题目要求读入若干以回车结束的字符串表示的整数或者浮点数,然后将每个数中的所有数字全部加总求和。

输入格式:

每行一个整数或者浮点数。保证在浮点数范围内。

输出格式:

整数或者浮点数中的数字之和。题目保证和在整型范围内。

输入样例:

-123.01
234

输出样例:

7
9

代码如下:

import java.util.Scanner;
public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);while(sc.hasNextLine()){int sum=0;String doublestr=sc.nextLine();for(int i=0;i<doublestr.length();i++){char c=doublestr.charAt(i);if(Character.isDigit(c)){int num=c-'0';sum+=num;}}System.out.println(sum);}sc.close();}
}

学习心得:

先说一下这道题的总体思路:

因为主要是提取浮点数中的数字,如果单纯用取模的话,会把个位数字和整个小数部分提取出来(比如对 7.56 取模 10 的结果还是7.56),这显然与题意不符。所以在做这类浮点数提取数字的题目,不妨将浮点数转换为字符串,再把数字部分提取出来就好了。

那相较于前几题,这道题新用到的一些知识点如下:

1、java.lang.String 类的方法

(1)int length():返回字符串的长度(也就是字符的个数),示例:"abc".length() → 3。

(2)boolean isEmpty():判断字符串是否为空(长度为 0),示例:"".isEmpty() → true。

(3)char charAt(int index):返回指定索引处的字符(索引从 0 开始),示例:"hello".charAt(1) → 'e'。

(4)int indexOf(String str):返回子串 str 第一次出现的索引(没找到返回 - 1),示例:"abcabc".indexOf("ab") → 0。

(5)int lastIndexOf(String str):返回子串 str 最后一次出现的索引,示例:"abcabc".lastIndexOf("ab") → 3。

(6)boolean equals(Object obj):比较两个字符串的内容是否相等(区分大小写),示例:"abc".equals("ABC") → false。

(7)boolean equalsIgnoreCase(String str):忽略大小写比较内容,示例:"abc".equalsIgnoreCase("ABC") → true。

(8)String substring(int beginIndex):从 beginIndex 截取到末尾,示例:"hello".substring(2) → "llo".

(9)String substring(int beginIndex, int endIndex):截取 [beginIndex, endIndex) 范围的子串(含头不含尾),示例:"hello".substring(1, 4) → "ell"。

(10)String[] split(String regex):按指定正则表达式拆分字符串为数组,示例:"a,b,c".split(",") → ["a", "b", "c"]。

(11)String toLowerCase():转为小写,示例:"HELLO".toLowerCase() → "hello"。

(12)String toUpperCase():转为大写,示例:"hello".toUpperCase() → "HELLO"。

(13)String replace(char oldChar, char newChar):替换所有指定字符,示例:"aaa".replace('a', 'b') → "bbb"。

(14)String replace(String oldStr, String newStr):替换所有指定子串,示例:"abab".replace("ab", "cd") → "cdcd"。

这道题只用到了(1)(3)小点,但是我还是把常用的一些方法也提供出来方便大家使用。

2、java.lang.Character类的方法

(1)isDigit(char c):判断字符是否为数字('0'-'9'),示例:Character.isDigit('5') → true;Character.isDigit('a') → false。

(2)isLetter(char c):判断字符是否为字母(包括大小写字母,如 'a'-'z'、'A'-'Z'),示例:Character.isLetter('A') → true;Character.isLetter('3') → false。

(3)isLetterOrDigit(char c):判断字符是否为字母或数字,示例:Character.isLetterOrDigit('b') → true;Character.isLetterOrDigit('@') → false。

(4)isLowerCase(char c) / isUpperCase(char c):判断字符是否为小写 / 大写字母,示例:Character.isLowerCase('c') → true;Character.isUpperCase('D') → true。

(5)isWhitespace(char c):判断字符是否为空白字符(空格 ' '、制表符 '\t'、换行符 '\n' 等),示例:Character.isWhitespace(' ') → true;Character.isWhitespace('a') → false。

值得注意的是,这几个方法返回的都是 boolean 值。

今天的分享就到这里了。

http://www.xdnf.cn/news/1436977.html

相关文章:

  • 自学嵌入式第三十三天:网络编程-UDP
  • Day19(前端:JavaScript基础阶段)
  • 分布式中防止重复消费
  • Spring Security的@PreAuthorize注解为什么会知道用户角色?
  • 开悟篇Docker从零到实战一篇文章搞定
  • 基于Python毕业设计推荐:基于Django的全国降水分析可视化系统
  • 战略咨询——解读81页中小企业企业战略规划方案【附全文阅读】
  • go-mapus最简单的离线瓦片地图协作
  • C++后端开发重点知识点
  • Adafruit_nRF52_Bootloader 使用 uf2
  • Spring Cloud Config 核心原理
  • 【C++】编写通用模板代码的重要技巧:T()
  • CICD的持续集成与持续交付和Zabbix
  • 【C++】15. ⼆叉搜索树
  • 室内定位---apriltag 视觉定位demo
  • (四)Python控制结构(条件结构)
  • deepseek7b本地部署技巧,新手也能玩得转
  • 下载 | Win11 官方精简版,系统占用空间极少!(8月更新、Win 11 IoT物联网 LTSC版、适合老电脑安装使用)
  • Flink RuntimeContext和FunctionContext:状态计算的核心桥梁
  • Linux中断实验
  • 数字化转型的终极关怀:以人为本
  • Linux笔记14——shell编程基础-8
  • C#类对象映射AutoMapper
  • QT(2)
  • MTK Linux DRM分析(二十九)- MTK mtk_dsi.c(Part.1)
  • Linux 环境配置 muduo 网络库详细步骤
  • Linux 文本处理三大利器:命令小工具和sed
  • 从理念到实践:三层解耦架构与“无系统”论
  • 基于web的高校学籍管理系统的设计与实现-(源码+LW+可部署)
  • CodeBuddy 在进化:我只输入了一个地址,完成了OneCode3.0基础开发环境的配置构建