java笔记 异常处理案例 以及 提取字符串每一个字符 和 判断是否有空格

    科技2022-09-08  105

    import java.util.Scanner; // 字符串带有空格异常 class WithSpaceNuberError extends Exception { String message; // 异常信息 WithSpaceNuberError() { message = "异常:字符串中带有空格" ;} public String ShowMessage() { return message; } } // 字符串带有非数子字符 class WithNotNuberError extends Exception { String message; // 异常信息 WithNotNuberError() { message = "异常:字符串中带有非数字字符" ;} public String ShowMessage() { return message; } // 返回异常信息 } class Number { public void Change(String number) throws WithSpaceNuberError, WithNotNuberError { for(int i = 0; i < number.length(); i++) { char c = number.charAt(i); // 利用下标返回索引值 // 判断是否有非数字字符 if( (c < '0' || c > '9') && c != ' ' ) // 如果字符不在数字而且不是空格 throw new WithNotNuberError(); // 抛出异常 // 判断是否有空格 if(c == ' ') // 返回下标 throw new WithSpaceNuberError(); } // 转换成整数后输出 int num = Integer.valueOf(number); System.out.println("转换后的数字为:" + num); } } public class Number_test { public static void main(String args[]) { Scanner read = new Scanner(System.in); String str1 = read.nextLine(); String str2 = read.nextLine(); String str3 = read.nextLine(); Number num1 = new Number(); Number num2 = new Number(); Number num3= new Number(); try // 检测异常 { num1.Change(str1); num2.Change(str2); num3.Change(str3); } // 捕获异常 catch (WithNotNuberError e) { System.err.println(e.ShowMessage()); } catch(WithSpaceNuberError e) { System.err.println(e.ShowMessage()); } } }

    提取字符串每一个字符

    char c = number.charAt(i); // 利用下标返回索引值

    java中提取字符串每个字符只能利用这个函数number.charAt来提取,number是string类型,i是下标,返回这个下标的索引值


    判断是否有空格 例子中我们是用循环判断每个下标的索引值是否为空格 还有一种方法直接判断空格的下标 如果空格的下标不是 -1 ,那说明空格的下标都在 0 ~ length - 1 之间 否则没有空格

    String str = "acddd"; if(str.Indexof(" ") != -1) { System.out.println("存在非法字符!"); } else { System.out.println("字符串合法"); System.out.println("空格的下标是 " + str.indexOf(" ")); }

    至于为什么是-1,如果不存在空格,那么空格的下标就是 -1

    只不过两个以上的空格只能检测到第一个

    Processed: 0.008, SQL: 9