トリムではないタブ(\ t)は、Javaで文字列の開始/終了からを実行します。

Bhves:

私は、フィールドがタブ(\ t)は、このようなルックスで区切られている入力ストリームを持っています

String str = "  acc123\tdpId123\t2011-01-01\t2022-01-01\[email protected]\tIN\t1233\tSOMETHING      ";

これは私が行うとき、正常に動作str = str.trim();し、

strArray = str.split("\t", -1); 
strArray=["acc123","dpId123","2011-01-01","2022-01-01","[email protected]","IN","1233","SOMETHING"] will give size as 8 

しかし、入力レコードの最後のフィールドは必須ではありませんし、スキップすることができます。

だから、入力があまりにもこのようになります。

 String str1 = "acc123\tdpId123\t2011-01-01\t2022-01-01\[email protected]\tIN\t1233\t";

しかし、この場合、最後のフィールドが空でなければなりませんが、私はトリム後にこの文字列を使用し、分割したときに、私のサイズは7です

str1 = str1.trim();      
strArray = str1.split("\t", -1); 
      strArray=["acc123","dpId123","2011-01-01","2022-01-01","[email protected]","IN","1233"]will give size as 7

でも私はしたい

strArray=["acc123","dpId123","2011-01-01","2022-01-01","[email protected]","IN","1233",""]

どのように私はこのような状況を避けることができますか?

Mushifアリナワズ:

あなたはそこに行きます:

String str1 = "   acc123\tdpId 123\t201 1-01-01\t2022-01-01\[email protected]\tIN\t1233\t";
str1 = str1.replaceAll("^[ ]+", ""); // removing leading spaces
str1 = str1.replaceAll("[ ]+$", ""); // removing trailing spaces
String[] split = str1.split("\t", -1);

System.out.println(Arrays.toString(split));
System.out.println(split.length);

文字列#トリム方法も削除されます\t私は正規表現を使用してのみ、先頭と末尾のスペースを削除したことを処理するには。

出力:

[acc123, dpId 123, 201 1-01-01, 2022-01-01, [email protected], IN, 1233, ]
8

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=317372&siteId=1
おすすめ