【问题标题】:find the first character of a word查找单词的第一个字符
【发布时间】:2012-09-26 06:32:03
【问题描述】:

我有以

开头的句子
  1. ccccccccddkskdjskjdksjdfksjfkjs sjfsjfksjjs

我想看看我读到的行的开头是否是数字和。 如果是,我想阅读该行的其余部分。

我该怎么做?

我教过把这行读到一个

 string str.
str[0] and str [1].
str[1]= .

 x= Character.isDigit(string.charAt(0)); 
 if(x) { if (string.charAt(1)=='.') 
 { print ...I get a Exception 

有没有一种简单的方法可以检查 str[0] 是否为数字..现在我正在手动检查它是否为 1(或)2...像这样?


线程“主”java.lang.StringIndexOutOfBoundsException 中的异常:字符串索引超出范围:1 在 java.lang.String.charAt(Unknown Source)

【问题讨论】:

    标签: java


    【解决方案1】:

    Character 类有isDigit 方法,可以如下使用:

    String str1 = "I start with letter";
    boolean startWithDigit = Character.isDigit(str1.charAt(0));
    // startWithDigit = false
    
    String str2 = "1 start with digit";
    boolean startWithDigit = Character.isDigit(str2.charAt(0));
    // startWithDigit = true
    

    【讨论】:

    • 感谢您通过问题解决了这个问题..但是在我关闭这个之前我还有一个相关的问题:----线程“main”java.lang.StringIndexOutOfBoundsException中的异常:字符串索引超出范围: 1 at java.lang.String.charAt(Unknown Source)...我试过像你说的 x= Character.isDigit(string.charAt(0)); if(x) { if (line.charAt(1)=='.') { 我得到那个异常
    • 在你的问题中添加代码,看不懂会更清楚。
    • 在访问索引之前,一定要检查if (index < line.length())
    【解决方案2】:
    String str="1. ccccccccddkskdjskjdksjdfksjfkjs sjfsjfksjjs";
    char charAt = str.charAt(0);
    Pattern p = Pattern.compile("\\d+");
    Matcher m1 = p.matcher(""+charAt);
    System.out.println(m1.matches());
    

    【讨论】:

      【解决方案3】:

      检查第一个字符的 ascii 值。

       char x = str.charAt(0);
       if(x >= 48 && x <= 57)
       {
           // do whatever
       }
      

      【讨论】:

      • 你不能像这样在 Java 中为字符串下标
      • 你也可以使用 >= '0',
      【解决方案4】:

      你可以这样做:

      布尔 isANumber = false; 尝试{ Integer.parseInt(str[0]); isANumber = true; }catch(异常 e){ } //如果str[0]是一个数字,现在isANumber为真

      【讨论】:

      • Char.isDigit()。如果 OP 想要检查它是否是小数(例如 Double.parseDouble),或者它不是以 10 为底的,则不会工作
      • 我不知道你在说什么。在您的代码中,您只检查第一个字符并尝试解析它。所以代码太多了,isDigit就够了。
      【解决方案5】:

      这样做

      String string="ccccccccddkskdjskjdksjdfksjfkjs sjfsjfksjjs"

      Character.isDigit(string.charAt(0));

      你可以像这样检查你的值

      更多详情请看这篇

      How do I find out if first character of a string is a number?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-22
        • 1970-01-01
        相关资源
        最近更新 更多