确定字符串是否以字母 A 到 I 开头

发布于 2024-12-21 12:55:35 字数 144 浏览 2 评论 0原文

我有一个简单的java作业。我需要确定一个字符串是否以字母 A 到 I 开头。我知道我必须使用 string.startsWith();但我不想一直写 if(string.startsWith("a")); ,这似乎效率不高。我应该使用某种循环吗?

I've got a simple java assignment. I need to determine if a string starts with the letter A through I. I know i have to use string.startsWith(); but I don't want to write, if(string.startsWith("a")); all the way to I, it seems in efficient. Should I be using a loop of some sort?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

从此见与不见 2024-12-28 12:55:35

为此,您不需要正则表达式。

尝试一下,假设您只需要大写:

char c = string.charAt(0);
if (c >= 'A' && c <= 'I') { ... }

但是,如果您确实需要正则表达式解决方案,则可以使用此解决方案 (ideone) :

if (string.matches("^[A-I].*$")) { ... }

You don't need regular expressions for this.

Try this, assuming you want uppercase only:

char c = string.charAt(0);
if (c >= 'A' && c <= 'I') { ... }

If you do want a regex solution however, you can use this (ideone):

if (string.matches("^[A-I].*$")) { ... }
偏闹i 2024-12-28 12:55:35
if ( string.charAt(0) >= 'A' && string.charAt(0) <= 'I' )
{
}

应该做

if ( string.charAt(0) >= 'A' && string.charAt(0) <= 'I' )
{
}

should do it

小红帽 2024-12-28 12:55:35

为了简洁起见,这个怎么样?

if (0 <= "ABCDEFGHI".indexOf(string.charAt(0))) {
    // string starts with a character between 'A' and 'I' inclusive
}

How about this for brevity?

if (0 <= "ABCDEFGHI".indexOf(string.charAt(0))) {
    // string starts with a character between 'A' and 'I' inclusive
}
聽兲甴掵 2024-12-28 12:55:35

尝试

string.charAt(0) >= 'a' && string.charAt(0) <= 'j'

Try

string.charAt(0) >= 'a' && string.charAt(0) <= 'j'
柳若烟 2024-12-28 12:55:35
char c=string.toLowerCase().charAt(0);
if( c >= 'a' && c <= 'i' )
    ...

这使得将其作为一种方法提取变得很容易:

public static boolean startsBetween(String s, char lowest, char highest) {
    char c=s.charAt(0);
    c=Character.toLowerCase(c);  //thx refp
    return c >= lowest && c <= highest;
}

这比任何内联解决方案都更受欢迎。为了获胜,将其标记为 Final,以便 java 为您内联它,并为您提供比编码内联解决方案更好的性能。

char c=string.toLowerCase().charAt(0);
if( c >= 'a' && c <= 'i' )
    ...

This makes it easy to extract it as a method:

public static boolean startsBetween(String s, char lowest, char highest) {
    char c=s.charAt(0);
    c=Character.toLowerCase(c);  //thx refp
    return c >= lowest && c <= highest;
}

which is HIGHLY preferred to any inline solution. For the win, tag it as final so java inlines it for you and gives you better performance than a coded-inline solution as well.

屋顶上的小猫咪 2024-12-28 12:55:35

if ( string.toUpperCase().charAt(0) >= 'A' && string.toUpperCase().charAt(0) <= 'I' )

应该是最简单的版本......

if ( string.toUpperCase().charAt(0) >= 'A' && string.toUpperCase().charAt(0) <= 'I' )

should be the easiest version...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文