编写一段程序实现如果输入的一组数中含非整数数字,输出数字相加的和以及"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. JavaSE复习~基本数据类型

    数据类型 java有两大类数据类型:基本数据类型 和 引用数据类型 基本数据类型 整数型:byte.short.int.long 浮点型:float.double 字符型:char 布尔型:boole ...

  2. Go语言经典库使用分析——高性能可扩展 HTTP 路由 httprouter(转载)

    转载自 飞雪无情的博客 Go语言(golang)的一个很大的优势,就是很容易的开发出网络后台服务,而且性能快,效率高.在开发后端HTTP网络应用服务的时候,我们需要处理很多HTTP的请求访问,比如常见 ...

  3. HTTP接口调用方式

    1.get方式,设置调用方式为get,参数直接在url中包含,直接调用获取返回值即可 2.post方式,content为application/x-www-form-urlencoded  ,参数格式 ...

  4. MQTT 浏览器 mqttws31.min.js

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 使用13行Python代码实现四则运算计算器函数

    原创的刷新行数记录的代码!!! 支持带小括号,支持多个连续+-号,如-7.9/(-1.2-++--99.3/-4.44)*---(2998.654+-+-+-(+1.3-7.654/(-1.36-99 ...

  6. c++ 读取、输出txt文件

    下面这段话转自:https://blog.csdn.net/lightlater/article/details/6326338 关于文本文件的文件头 第一 ANSI文件的文件头为空,不需要处理: 第 ...

  7. [WC2018]通道(乱搞,迭代)

    [洛谷题面]https://www.luogu.org/problemnew/show/P4221 这个题以及[CTSC2018 暴力写挂]都有类似的乱搞做法能通过考场数据. 具体搞法就是随一个起点, ...

  8. [阿里移动推荐算法]比赛_快速入门_4_19_update_仅供参考,思维不要受局限

    [这里只讲快速入门——即破题,正负样本不平衡.特征数量等问题就自己多看论文或者其他资料吧~~如果还有数据挖掘相关基础知识不了解的,建议看看<数据挖掘导论>] [以下是理解错误案例]:错误的 ...

  9. php 高级 提高PHP代码的性能10条建议

    1.echo比print要快很多.两个方法都会在页面上打印东西,不过echo不返回任何值,print会在成功或失败的时候返回0或1. 2.include_once比include更加耗时.因为它需要去 ...

  10. C/C++网络编程7——多进程服务器端之fork函数

    通过前面几节的内容,我们已经可以实现基本的C/S结构的程序了,但是当多个客户端同时向服务器端请求服务时,服务器端只能按顺序一个一个的服务,这种情况下,客户端的用户是无法忍受的.所以虚实现并发的服务器端 ...