2017-11-13 7 views
0

私はこのラインを持っている:は2のcharAt(i)をチェックする方法

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); 
} 

をそして、それは今のために働いています私は助けが必要です

答えて

0

あなたは文字を持っており、それらを数字として比較しようとしています。そのようには機能しません。

char上位レベル(Java、.NET言語など)のプログラミング言語は、デフォルトでUTF-16の形式に従います。各のサイズは2 bytesなので、必要なエンコーディングに従うことができます。

charstringと比較することはできません。'10'のように文字列を文字列に入力することはできません。それらは2文字であり、1文字ではありません。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 

これで十分ですがか、数字を比較する必要がありますか?

+0

それはそのその次の行に私に示した問題を取り組んでイマイチ:行[i]は=行[ i] .substring(0、index); – Dany123

+0

"ほとんどのプログラミング言語のcharは、デフォルトでASCII形式に従います":単純に真ではありません。 Javaを中心に、 'char'は[UTF-16](http://www.unicode.org/faq/utf_bom.html)のコード単位です。 UTF-16は、[Unicode](http://www.unicode.org/charts/nameslist/index.html)文字セットのエンコーディングの1つです。 UTF-16は、Java、JavaScript、VB4/5/6、VBA、VBScript、C#、VB、SQL、VBAなどで使用されています。 –

+0

@ Dany123エラーは何ですか?コードは私にとってうまく働いています。 – Everyone

0

この行に間違って言う動作していない:

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

@Everyone

+0

@ Dany123としてログインすることはできますか? –

関連する問題