首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java CharSequence迭代

Java CharSequence迭代
EN

Code Review用户
提问于 2015-02-04 14:58:23
回答 1查看 1.9K关注 0票数 4

我正在处理的项目要求我检查输入字符串的第一个字符,以确定它是否为数字字符。我开发了以下代码:

代码语言:javascript
复制
public static boolean IsLeadingCharNumfName(String fName)
{
    CharSequence[] numbs;
    numbs  = new CharSequence[10];
    numbs[0] = "0";
    numbs[1] = "1";
    numbs[2] = "2";
    numbs[3] = "3";
    numbs[4] = "4";
    numbs[5] = "5";
    numbs[6] = "6";
    numbs[7] = "7";
    numbs[8] = "8";
    numbs[9] = "9";

    if(fName.substring(0,1).equals(numbs[0]))
    {
        return true;
    }
    if(fName.substring(0,1).equals(numbs[1]))
    {
        return true;
    }
    if(fName.substring(0,1).equals(numbs[2]))
    {
        return true;
    }
    if(fName.substring(0,1).equals(numbs[3]))
    {
        return true;
    }
    if(fName.substring(0,1).equals(numbs[4]))
    {
        return true;
    }
    if(fName.substring(0,1).equals(numbs[5]))
    {
        return true;
    }
    if(fName.substring(0,1).equals(numbs[6]))
    {
        return true;
    }
    if(fName.substring(0,1).equals(numbs[7]))
    {
        return true;
    }
    if(fName.substring(0,1).equals(numbs[8]))
    {
        return true;
    }
    if(fName.substring(0,1).equals(numbs[9]))
    {
        return true;
    }
    else
    {
        return false;
    }
}

我觉得这段代码可以被优化,以提高效率,但我不知道怎么做。我必须做同样的检查,以检查名称是否包含一个数字。

我正在寻找的,是一种方法,主要是降低代码占用,效率作为第二奖励。

EN

回答 1

Code Review用户

回答已采纳

发布于 2015-02-04 15:06:57

使用Java的内置函数来实现这样的功能。特别是Character.isDigit(char c)String.charAt(int index)String.charAt(int index)

您现在拥有的是一个糟糕的重新实现,它会让任何维护程序员“等等,什么?”

这听起来很刻薄,但想想它实际上是什么:

代码语言:javascript
复制
return Character.isDigit(myString.charAt(0));

那一行就是你所需要的。

为了防止将来发生类似的事情,我建议谷歌一下你的问题("java字符串以数字开头“或"java字符串以数字开头”)。

你就会想到这个问题..。https://stackoverflow.com/questions/1107798/how-to-check-a-string-starts-with-numeric-number ..这也指向了Character.isDigit。一点点谷歌将在你的编程工作中发挥很大作用。

,但是学校说我不能用那些方法!

噢。好吧。

首先,将fName.substring(0,1)存储在临时变量中。不需要永远子串。然后,代替Character.isDigit..。

代码语言:javascript
复制
String allowedChars = "0123456789";
String firstChar = fName.substring(0,1);
return allowedChars.contains(firstChar);

毕竟,StringCharSequence。您可以在java.lang.String文档。中看到这个

代码语言:javascript
复制
public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence

瞧,String implements CharSequence

Bugs

您需要注意的一件事是,您的函数可以获得一个null字符串或一个空字符串。

您应该检查得到的字符串是空还是空:

代码语言:javascript
复制
if (fName == null || fName.length == 0){
    return false;
}
票数 4
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/79584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档