1.你知道怎么判断一个字符串是不是整数?
有三种方法解决以上问题
1.使用Character.isDigit(char)判断
String str = "123sad" ;
if(!"".equals(str)){ //字符串不为空
char num[] = str.toCharArray();//把字符串转换为字符数组
StringBuffer a = new StringBuffer();//使用StringBuffer类,把非数字放到a中
StringBuffer b = new StringBuffer();//把数字放到b中
for(int i=0;i<num.length;i++)
{
//判断输入的数字是否为数字还是字符
if(Character.isDigit(num[i])){
//调用Character.isDigit(char)方法判断是否是数字,是返回True,否则False
b.append(num[i]) ;//如果是数字,就把它赋给b.
}else {
a.append(num[i]) ;//如果是字符,就把它赋给a.
}
}
}
2.使用类型转换判断
try{
String str ="12312sadfdf" ;
int num = Integer.valueOf(str);//把字符串强制转换为数字
return true ;
}catch(Exception e)
{
return false ;//如果抛出异常
}
3.用正则表达式判断
String str = "" ;
boolean isNum = str.matches("[0-9]+") ;
//表示1个或多个(如"3"或"225"),*表示0个或多个([0-9]*)(如""或"1"或"22"),?表示0个或1个([0-9]?)(如""或"7")
ps:上述方法只能判断是否是正整数
2.你知道怎么判断一个字符串是不是负整数?
看一个题,就会明白:Java例外机制的问题
如果第一行是一个整数(假设值为n),则创建一个大小为n的整数数组。
其第二行数据是个整数(假设值为index),输出数组中下标为index的数值。
如果第一行不是一个整数,则把第一行数据整个作为一个字符串;
其第二行数据也是整数(假设值为index),输出字符串中下标为index处的字符。
请通过Java的Exception机制去判断各种例外情况,
在例外发生时(如n为负数,index越界,第一行字符串不是整数),
输出相应例外类的类名。对应每组数据,有一行输出。
对每组数据,第一行可能是一个整数,也可能是一个字符串,第二行数据一定是一个整数。整数的取值范围任意
或者输出正确的结果,或者输出被抛出的例外的类名。
123 256 Hello, how are you? 65 -1 45 23 21 Haha, you're wrong! 3
ArrayIndexOutOfBoundsException
StringIndexOutOfBoundsException
NegativeArraySizeException
0
h//其实这个是a,不是h,希望大家不会犯错
解决方案一: Javaimport java.util.Scanner; public class Main{ /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new Main().test() ; } public void test() { Scanner sc = new Scanner(System.in) ; String str; int index; while(sc.hasNext()){ str = sc.nextLine() ; index = sc.nextInt() ; boolean isNum = change(str) ; if(isNum) { int n = Integer.parseInt(str) ; if(n<0){ System.out.println("NegativeArraySizeException") ; }else{ int h[] = new int[n] ; if(index<0||index>h.length-1) { System.out.println("ArrayIndexOutOfBoundsException") ; }else { System.out.println(h[index]) ; } } }else { String n = str ; if(index<0||index>n.length()-1) { System.out.println("StringIndexOutOfBoundsException") ; }else { System.out.println(n.charAt(index)) ; } } if(sc.hasNext()) {sc.nextLine();} else{ break ; } } } /** *判断字符串是否是整数 */ public boolean change(String str) { int k=0; if(str.equals("")) return false ; char num[] = str.toCharArray();//把字符串转换为字符数组 for (int i = 0; i < num.length; i++) { // 判断输入的数字是否为数字还是字符 if((i==0&&num[i]=='0'&&num.length>1)||(num[0]=='-'&&num[1]=='0')) { return false ; }else if (Character.isDigit(num[i])) { k++ ; } if(i==0&&num[i]=='-'&&num.length>1) { k++ ; } } if(k==num.length) {return true ;} else {return false;} } }解决方案二: Java
package dsa; import java.io.PrintWriter; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cinScanner = new Scanner(System.in); PrintWriter coutPrintWriter = new PrintWriter(System.out); while(cinScanner.hasNext()) { String string = cinScanner.nextLine(); String string1 = cinScanner.nextLine(); try { int n = Integer.parseInt(string); try { int a[] = new int[n]; try { int m = Integer.parseInt(string1); coutPrintWriter.println(a[m]); } catch (Exception ex) { coutPrintWriter.println(ex.getClass().getSimpleName()); } } catch (Exception e) { coutPrintWriter.println(e.getClass().getSimpleName()); } } catch (Exception e) { try { int m = Integer.parseInt(string1); coutPrintWriter.println(string.charAt(m)); } catch (Exception ex) { coutPrintWriter.println(ex.getClass().getSimpleName()); } } } cinScanner.close(); coutPrintWriter.close(); } }
相关推荐
关键字:throw throw是一种控制程序...很有意思,throws只是告诉编译器--方法可能产生的异常问题,然后把问题处理抛给try和catch。他们一个负责发现异常关系,一个负责异常捕获。很辛苦的一对难兄难弟哦,:)
Java程序的例外处理机制和方法; ■ Java语言的输入/输出处理机制和方法,常用的输入/输出方法,输入/输出处理的应用; ■ Java语言的图形用户界面设计:AWT界面设计的基本方法,常用的组件类库,图形用户界面...
如何使用JAVA来创建图形用户界面(GUI),事件处理机制,例外处理,通过设计与开发各种JAVA程序来获得实际的编程经验。您也将学到文件输入/输出/(I/O)。多线程和网络的知识(本课程用来代替SL-230/SL-270和SL-270/...
Java程序的例外处理机制和方法; ■ Java语言的输入/输出处理机制和方法,常用的输入/输出方法,输入/输出处理的应用; ■ Java语言的图形用户界面设计:AWT界面设计的基本方法,常用的组件类库,图形用户界面...
Java程序的例外处理机制和方法; ■ Java语言的输入/输出处理机制和方法,常用的输入/输出方法,输入/输出处理的应用; ■ Java语言的图形用户界面设计:AWT界面设计的基本方法,常用的组件类库,图形用户界面...
Java程序的例外处理机制和方法; ■ Java语言的输入/输出处理机制和方法,常用的输入/输出方法,输入/输出处理的应用; ■ Java语言的图形用户界面设计:AWT界面设计的基本方法,常用的组件类库,图形用户界面...
JAVA异常处理机制 一、什么异常(Exception) 1.生活中异常:不正常事件(意外) 2.程序异常:异常是指在程序的运行过程中所发生的不 正常的事件(例外,错误),它会中断正在运行的程序。 3.什么是异常处理:java编程语言使用...
在任何编程语言中,无论是基本类型还是引用类型,不论其作用域如何,都必须为其分配一定的内存空间,Java 语言也不例外,Java 的数据类型可以分为两种:基本类型(变量持有数据本身的值)和引用类型(是某个对象...
•直接使用web应用已有的用户角色管理机制,不存在两套管理机制无法兼容的问题,提供统一的登录界面,最终用户不需要登录两次。 总结:润乾采取的集成方案新颖独到,其报表工具完全解决了程序员的集成烦恼,非常...
文章目录异常处理的概念异常的基本概念Java异常处理机制的优点错误的分类异常的分类预定义的一些常见异常异常的处理抛出异常捕获异常的语法生成异常对象声明自己的异常类 异常处理的概念 在程序在运行的时候可能会...
目前网上对Rxjava2+Retrofit2的封装真是太多了,但是大体思路都是一样的,而且好多代码都具有相似性,这套其实也不例外,大家可选择性使用。 首先我们先不说封装思路,先说说这套框架都都具有哪些功能及如何使用; ...
异常处理的概念,与传统错误处理机制的比较,try-catch-finally块,异常类型,Java中的标准异常及其作用,从方法中抛出异常。 第3课。收藏 Java容器的类型:列表,地图,集合。 基本实现和使用技术,遍历集合的元素...
这些库可用于构建具有明确定义的容错和恢复机制的分布式系统。 saga-samples 模块下的 polyglot-persistence 示例应用程序演示了所有分布式 saga 库的充分利用,是一个很好的起点。 该项目的一个目标是分布式 saga ...
Java Servlet API说明文档 绪言 这是一份关于2.1版JavaServletAPI的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档。 谁需要读这份文档 这份...
循序渐进从JAVA基本概念、核心内容、试题分析、小结和习题等多个环节来组织内容,内容主要包括JAVA语言语法、使用JAVA来创建图形和用户接口、例外处理、垃圾搜索、面向对象、文件输入、输出、事件处理机制、多线程...
掌握如何使用标准Java Development kit V1.5 (JDK)...如何使用Java来创建图形用户接口(GUI),事件处理机制,例外处理,通过开发各种Java程序来获得实际的编程经验;您也将学到文件输入/输出(I/O);多线程和网络的知识。
程序出错的情形相当普遍...例外处理是Java处理程序错误的一套标准机制 ,JSP延用这套机 制,为运行网页过程中所产生的错误,提供相关的处理方法 。 JSP可能产生的错误可以大致分为两类:编译期的错误和运行期的例外。
Java中有一个例外,它是一个对象,它描述程序代码中出现的异常(错误)情况。 当给定方法中发生错误时,将在该方法中引发描述该错误的异常。 该方法既可以捕获并处理异常本身,也可以将其传递。 最后,错误被捕获并...
Java中有一个例外,它是一个对象,它描述程序代码中出现的异常(错误)情况。 当给定方法中发生错误时,将在该方法中引发描述该错误的异常。 该方法既可以捕获并处理异常本身,也可以将其传递。 最后,错误被捕获并...