【问题标题】:How to check 2 charAt(i)如何检查 2 charAt(i)
【发布时间】:2017-11-13 21:37:51
【问题描述】:

我有这样的台词:

812.12 135.14 646.17 1
812.12 135.14 646.18 1
812.12 135.14 646.19 10
812.12 135.14 646.20 10
812.12 135.14 646.21 100
812.12 135.14 646.22 100

我只想删除最后一组,所以我做了这样的代码:

if(lines[i].charAt(lines[i].length())-1>= '0'&&lines[i].charAt(lines[i].length()-1)<= '9'){
    lines[i] = lines[i].substring(0, lines[i].length()-1);
   }

   else if(lines[i].charAt(lines[i].length())>='10'+c&&lines[i].charAt(lines[i].length()-1)<='99'){
   lines[i] = lines[i].substring(0, lines[i].length()-2);
        }

   else if(lines[i].charAt(lines[i].length())>='100'&&lines[i].charAt(lines[i].length()-1)<='999){
   lines[i] = lines[i].substring(0, lines[i].length()-3);
 }

它现在对我有用,我需要帮助

【问题讨论】:

    标签: char charat


    【解决方案1】:

    它不起作用,这行说错了:

    lines[i] = lines[i].substring(0, index);
    

    @大家

    【讨论】:

    • 您能以@Dany123 的身份重新登录吗?
    【解决方案2】:

    您有字符并试图将它们作为数字进行比较。那样不行。

    大多数高级(Java、.NET 语言...等)编程语言中的char 默认遵循UTF-16 格式。由于每个char 的大小都是2 bytes,它可以遵循您需要的任何编码。

    您不能将charstring 进行比较,也不能尝试将字符串放入char 中,例如'10'。那是两个字符,不是一个,是string

    现在,根据您想要的输出,您想删除最后一个空格之后的所有内容。为此,您可以使用以下代码:

    static void updateLines(String[] lines){
        for(int i=0;i<lines.length; i++){
            // get index of the last space
            int index = lines[i].lastIndexOf(" ");
    
            // remove everything after the last space
            lines[i] = lines[i].substring(0, index);
        }
    }
    
    
    public static void main(String[] args) {
        String[] lines = new String[]{
          "812.12 135.14 646.17 1",
          "812.12 135.14 646.18 1",
          "812.12 135.14 646.19 10",
          "812.12 135.14 646.20 10",
          "812.12 135.14 646.21 100", 
          "812.12 135.14 646.22 100",
          "812.12 135.14 646.23 1000",
          "812.12 135.14 646.24 1000"
        };
    
        updateLines(lines);
    
        for(int i=0;i<lines.length;i++)
            System.out.println(lines[i]);
    }
    

    输出:

    812.12 135.14 646.17
    812.12 135.14 646.18
    812.12 135.14 646.19
    812.12 135.14 646.20
    812.12 135.14 646.21
    812.12 135.14 646.22
    812.12 135.14 646.23
    812.12 135.14 646.24
    

    这就够了还是需要比较数字?

    【讨论】:

    • 它没有解决它在这一行中向我显示的问题:lines[i] = lines[i].substring(0, index);
    • “大多数编程语言中的字符默认遵循 ASCII 格式”:根本不正确。专注于Java,char是一个UTF-16代码单元; UTF-16 是Unicode 字符集的几种编码之一。 UTF-16 被 Java、JavaScript、VB4/5/6、VBA、VBScript、C#、VB、SQL、VBA、... 使用
    • @Dany123 您遇到什么错误?该代码对我来说工作得很好。
    • @TomBlodget 对不起,你是绝对正确的。我的想法总是转向 C 和 C++,其中 char1 byte 长。我的错。
    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    相关资源
    最近更新 更多