java关于hasNext()
编写一段程序实现如果输入的一组数中含非整数数字,输出数字相加的和以及"attention"字符,如果全部是数字便输出数字的和。
程序1:
package mian;
import java.util.Scanner;
public class mian { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int s=0;
String str=null;
while(sc.hasNext()){
if(sc.hasNextInt()){//判断是否是数字
s+=sc.nextInt(); }else{
str=sc.next();//不写这句话会导致只会加非数字前数字的和,必须将这个非数字字符串吸收了
} }
System.out.println(s);
if(str!=null){
System.out.println("attention");
}sc.close();
} }
程序2:
import java.util.Scanner;
public class Main{
//return -1: -10(带负号)
//return 1: +10(带正号)
//return 0 非数字字符串
//return 2: 10(不带正负号) public static int checkNum(String str){//判断是否是数字串
if(str.charAt(0)=='-'){
for(int i=1;i<str.length();i++){
if(str.charAt(i)-'0'>9||str.charAt(i)-'0'<0){
return 0;
}
}return -1; }else if(str.charAt(0)=='+'){
for(int i=1;i<str.length();i++){
if(str.charAt(i)-'0'>9||str.charAt(i)-'0'<0){
return 0;
}
}return 1;
}else{
for(int i=0;i<str.length();i++){
if(str.charAt(i)-'0'>9||str.charAt(i)-'0'<0){
return 0;
}
}return 2; } }
public static void main(String []args){
int flag=0,s=0,sum=0;
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){ String a=sc.next();
if(checkNum(a) == 1){
for(int i=1;i<a.length();i++){
s=s*10+a.charAt(i)-'0';
}sum+=s;s=0;
}else if(checkNum(a) == -1){
for(int i=1;i<a.length();i++){
s=s*10+a.charAt(i)-'0';
}sum+=-s;s=0; }else if(checkNum(a) == 2){
for(int i=0;i<a.length();i++){
s=s*10+a.charAt(i)-'0';
}sum+=s;s=0; }else{
flag=1;
//continue;
}
}
if(flag==0){
System.out.println(sum);
}else{
System.out.println(sum);
System.out.println("attention");
} sc.close(); } }
java关于hasNext()的更多相关文章
- Java使用hasNext()输入不定长数组
1 Scanner scan = new Scanner(System.in); 2 String s = scan.nextLine(); 3 Scanner sc = new Scanner(s) ...
- Java的23种设计模式 <二>
1.单例模式(Singleton Pattern) 定义:Ensure a class has only one instance, and provide a global point of acc ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- poj 1001 求高精度幂(Java, BigDecimal, pow, hasNext, stripTrailingZeros, toPlainString)
求高精度幂 Time Limit: 500MS Memory Limit: 10000K Total Submissions: 180325 Accepted: 43460 Descripti ...
- java.util.Scanner中hasNext()方法和next()方法的区别
先说结论: 两者均根据空格划分数据 两者在没有数据输入时均会等待输入 next()方法会将空格划分的数据依次输出,运行一次,输出一个 hasNext()方法会跟着next()方法移动,当前数据不为空, ...
- Java 常用类库一,main方法传参String[] args;获取输入Scanner ;hasNext();hasNextInt()
1. main方法传参 package com.zmd.common_class_libraries; /** 给mian方法传参测试 */ public class MainArgsTest { p ...
- java Scanner中的hasNext()方法
hasNext()方法判断输入(文件.字符串.键盘等输入流)是否还有下一个输入项,若有,返回true,反之false. Scanner sc = new Scanner(new File(" ...
- 一起学 Java(三) 集合框架、数据结构、泛型
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
- java基础_集合List与Set接口
List接口继承了Collection的方法 当然也有自己特有的方法向指定位置添加元素 add(索引,添加的元素); 移除指定索引的元素 remove(索引) 修改指定索引的元素 set ...
随机推荐
- uWSGI配置参数释义
uWSGI配置参数释义 socket : 地址和端口号,例如:socket = 127.0.0.1:50000 processes : 开启的进程数量 workers : 开启的进程数量,等同于pro ...
- POJ2516 Minimum Cost
亲爱的,一个货物销售者,现在遇到了一个大问题,他需要你的帮助.在他的销售区域有 N 个店主(从 1 到 N)向他储存货物,Dearboy 有M 个供应点(从 1 到 M),每个供应点提供 K 种不同的 ...
- Spring Boot 缓存应用 Memcached 入门教程
本章学习 Mmecached 在 Spring Boot 中的使用教程.Memcached 与 Redis 各有好处.本文主要学习 Spring Boot 中如何应用集成 Mmecached spri ...
- P2774 方格取数(网络流)
https://www.luogu.com.cn/problem/P2774 在一个有 m×n 个方格的棋盘中,每个方格中有一个正整数. 现要从方格中取数,使任意2个数所在方格没有公共边,且取出的数的 ...
- 引入C/C++动态库
[DllImport("SocketAPI.dll", CharSet = CharSet.Ansi, ExactSpelling = true, SetLastError = t ...
- 洛谷P1346 电车(需要稍加思索的最短路)
题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能).在每个路口,都有一个开关决定 ...
- JAVA接口测试类
package etcom.servlet; import java.io.BufferedReader; import java.io.InputStreamReader; import java. ...
- C语言-(void*)类型指针
(void*)类型指针:ANSI新增的:即定义了一个指针,但不指定指向任何类型(即指向抽象的数据类型). 1 通过强制类型转换可将其值赋给另一指针变量 2.1用于动态存储函数的返回型指针 void m ...
- 洛谷 P5057 [CQOI2006]简单题(树状数组)
嗯... 题目链接:https://www.luogu.org/problem/P5057 首先发现这道题中只有0和1,所以肯定与二进制有关.然后发现这道题需要支持区间更改和单点查询操作,所以首先想到 ...
- mcast_join函数
#include <errno.h> #include <string.h> #include <net/if.h> #include <netinet/in ...