2017-04-18 15 views
-3

サイズが1MBを超える場合は、文字列を切り取る必要があります。JAVAのサイズに基づいて文字列を切り取る方法は?

どのように私はjavaでそれを行うことができますか?基本的に1MB以上のものは切り落とされなければならず、ちょうど1MBサイズ以下の文字列を取得する必要があります。

+1

あなたの質問に対する答えは、あなたの文字列の_encoding_に依存すると思います。いくつかの鈍い中国語文字は4バイトを取るかもしれないが、基本ASCII文字は1バイトしか取らないかもしれない。 –

答えて

-1

は、あなたの文字列のため、このコードを試してみてください。

public static void main(String[] args) { 
     // Get length of String in bytes 
     String string = "long string"; 
     long sizeInBytes = string.getBytes().length; 
     int oneMb=1024*1024; 
     if (sizeInBytes>oneMb) { 
      String string1Mb=string.substring(0, oneMb); 
     } 
    } 
0

Javaは文字の2バイトを検討してください。しかし、それはまだ使用されるエンコーディングに基づいて変化します。 Refer the link for more detail

文字あたり1バイトを要するUTF-8エンコーディングを使用している場合を考えてください。 1 MBの1048576バイトごとに切り詰めることができます。

+0

[UTF-8](https://en.wikipedia.org/wiki/UTF-8)は1文字あたり1バイトではありません。これは可変長のエンコーディングで、1文字あたり1〜4バイトを使用します。 – Jesper

関連する問題