标题:新手求助 异常问题逻辑测试出错
只看楼主
止步于未来
Rank: 2
等 级:论坛游民
威 望:1
帖 子:22
专家分:67
注 册:2016-11-24
 问题点数:0 回复次数:5 
新手求助 异常问题逻辑测试出错
这个该怎么解决啊?貌似直接报了类型异常都没有进入isNumeric方法进行逻辑判断
public class TempoaryTest {

    static boolean isNumeric(String token) throws Exception {    //用来逻辑判断处理异常问题的
        
        for(int i = 0; i< token.length; i++) {
            if(token[i] >= "48" && token[i] <= "57") {
               
                return true;
            }
            else {
                return false;
                break;
            }
        }
    }
   
    public static void main(String[] args) {
        String str = "Hello";
        isNumeric(str);   //第20行
        }
}

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    Type mismatch: cannot convert from String to String[]

    at TempoaryTest.main(TempoaryTest.java:20)

[此贴子已经被作者于2017-5-19 17:13编辑过]

搜索更多相关主题的帖子: public return false 
2017-05-19 16:46
止步于未来
Rank: 2
等 级:论坛游民
威 望:1
帖 子:22
专家分:67
注 册:2016-11-24
得分:0 
求大神指点,可能问题很低级不过我鼓弄!半天还是得不到结果,求教!!!

一步一脚的向前
2017-05-19 17:03
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
得分:0 
Type mismatch: cannot convert from String to String[]
类型匹配错误:无法将string类型转换成string数组类型。

static boolean isNumeric(String token) 你传进来的token是字符串类型,

 if(token[i] >= "48" && token[i] <= "57") 而你使用时,使用字符串数组类型。

将isNumeric函数的参数列表更改过来。改成字符串类型。
static boolean isNumeric(String token[])

[此贴子已经被作者于2017-5-20 16:28编辑过]

2017-05-19 20:18
Honor000
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-10-23
得分:0 
public class TempoaryTest {

    static boolean isNumeric(String token) throws Exception { // 用来逻辑判断处理异常问题的

        for (int i = 0; i < token.length(); i++) {// token是String不是数组,没有length属性只有length()方法
            // if(token[i] >= "48" && token[i] <= "57")
            // {//遍历token的字符,不可以通过角标,可以通过charAt(int index):返回字符串指定索引位置的字符
            // if (token.charAt(i) >= "48" && token.charAt(i) <= "57")
            // {//字符与字符串不可以使用逻辑运算符进行比较运算
            // 我猜想你是想比较toden字符串遍历到的字符的Ascll值是否在48与57之间,所以我帮你写出一种正确的实现办法
            if ((int) token.charAt(i) >= 48 && (int) token.charAt(i) <= 57) {
                return true;
            } else {
                return false;
                // break;//return 语句后面的语句永远都不会执行,属于一句标准的废话,需要注释掉,不然编译不会通过
            }
        }
        return false;// retrun语句需要在for循环外面再加一句,要不然编译不通过,(原因:当没有for循环执行for循环时,函数是没有语句执行返回值的返回的;永远记住编译器只是检查程序代码的语法错误, 编译器并没有执行语句,所以for循环的条件语句它并不知道

    }

    public static void main(String[] args) throws Exception {
        String str = "Hello";
        isNumeric(str); // 第20行
                        // isNumeric()声明了该方法将抛出一个Exception异常,调用isNumeric()的调用者,要么提前给出处理该异常解决办法,要么该调用者也声明出该异常
        // 在这里我给出声明该异常的解决方式,主函数调用了isNumeric()所以调用者就是主函数
    }
}

[此贴子已经被作者于2017-5-22 23:19编辑过]

2017-05-22 23:15
zhcdcx
Rank: 2
等 级:论坛游民
威 望:3
帖 子:15
专家分:52
注 册:2017-4-12
得分:0 
你传进来的好像是字符串;但是你把它当成字符数组再用。所以会报异常。
2017-05-23 10:52
勿废青春
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-5-18
得分:0 
赞同4楼
2017-05-23 14:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-477155-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.076325 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved