编写一段程序实现如果输入的一组数中含非整数数字,输出数字相加的和以及"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()的更多相关文章

  1. Java使用hasNext()输入不定长数组

    1 Scanner scan = new Scanner(System.in); 2 String s = scan.nextLine(); 3 Scanner sc = new Scanner(s) ...

  2. Java的23种设计模式 <二>

    1.单例模式(Singleton Pattern) 定义:Ensure a class has only one instance, and provide a global point of acc ...

  3. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  4. poj 1001 求高精度幂(Java, BigDecimal, pow, hasNext, stripTrailingZeros, toPlainString)

    求高精度幂 Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 180325   Accepted: 43460 Descripti ...

  5. java.util.Scanner中hasNext()方法和next()方法的区别

    先说结论: 两者均根据空格划分数据 两者在没有数据输入时均会等待输入 next()方法会将空格划分的数据依次输出,运行一次,输出一个 hasNext()方法会跟着next()方法移动,当前数据不为空, ...

  6. Java 常用类库一,main方法传参String[] args;获取输入Scanner ;hasNext();hasNextInt()

    1. main方法传参 package com.zmd.common_class_libraries; /** 给mian方法传参测试 */ public class MainArgsTest { p ...

  7. java Scanner中的hasNext()方法

    hasNext()方法判断输入(文件.字符串.键盘等输入流)是否还有下一个输入项,若有,返回true,反之false. Scanner sc = new Scanner(new File(" ...

  8. 一起学 Java(三) 集合框架、数据结构、泛型

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  9. java基础_集合List与Set接口

    List接口继承了Collection的方法  当然也有自己特有的方法向指定位置添加元素   add(索引,添加的元素); 移除指定索引的元素   remove(索引) 修改指定索引的元素   set ...

随机推荐

  1. Wireshark 查看指定进程的网络包

    Wireshark 查看指定进程的网络包 打开任务管理器,右键筛选列,选中PID(进程标识符): 找到该进程对应的PID,如1200: 在cmd中执行netstat -ano|findstr 1200 ...

  2. 201771010135杨蓉庆《面向对象程序设计(java)》第二周学习总结

    第一部分:理论知识学习部分 3.1 标识符:由字母.下划线.美元符号和数字组成, 且第一个符号不能为数字,可用作:类名.变量名.方法名.数组名.文件名等.有Hello.$1234.程序名.www_12 ...

  3. K8S的安装

    两种方式安装k8s: 传统方式,使用二进制. 优点:能够让我们更清楚k8s的组件关系,可扩展性强,可定制化 缺点:不利于新手部署 使用kubeadm安装 优点:简单,高效 缺点:所有的事情都被kude ...

  4. Euler Sums系列(四)

    \[\Large\displaystyle \sum_{n=1}^\infty (-1)^n \frac{H_n}{2n+1}=\mathbf{G}-\frac{\pi}{2}\ln(2)\] \(\ ...

  5. web打开本地文件并读取内容

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. Codeforces Round #618 (Div. 2)A. Non-zero

    Guy-Manuel and Thomas have an array aa of nn integers [a1,a2,…,an ]. In one step they can add 11 to ...

  7. Possible overdraw: Root element paints background @drawable/happy with a theme that also paints a background (inferred theme is @style/AppTheme)

    安卓界面插入背景图片,当图片内存太大时,界面在切换时会加载失败,这是什么原因呢?这是设置android:background属性时发出的warning: Possible overdraw: Root ...

  8. 360网安学习笔记——Web安全原理与实践

    网络安全 基本技能: 1.编程语言 2.计算机网络 3.操作系统 4.office 专业技能 1.web安全 2.网络安全 3.渗透测试 4.代码审计 能力提升 1.书籍 2.站点 3.安全平台 We ...

  9. vjudge Trailing Zeroes (III) (二分答案 && 数论)

    嗯... 题目链接:https://vjudge.net/contest/318956#problem/E 这道题是二分答案+数论,但首先是数论,否则你不知如何二分... 首先关于一个阶乘的结果最后会 ...

  10. Python爬虫教程-新浪微博分布式爬虫分享

    爬虫功能: 此项目实现将单机的新浪微博爬虫重构成分布式爬虫. Master机只管任务调度,不管爬数据:Slaver机只管将Request抛给Master机,需要Request的时候再从Master机拿 ...