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

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来提取,numberstring类型,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

在这里插入图片描述
只不过两个以上的空格只能检测到第一个

猜你喜欢

转载自blog.csdn.net/yogur_father/article/details/108934299
今日推荐