2017-04-18 57 views
-3

如果尺寸超過1mb,我需要切掉一個字符串。如何在JAVA中基於大小切斷字符串?

我怎麼在java中做到這一點?基本上任何1mb以上的東西都必須被砍掉,我應該得到一個正好是1mb或更小的字符串。

+1

我認爲你的問題的答案將取決於你的字符串_encoding_。一些鈍的中文字符可能需要4個字節,而一個基本的ASCII字符可能只需要一個字節。 –

回答

-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

請考慮如果您使用的UTF-8編碼,每個字符需要1個字節。您可以爲每個1048576字節加1MB。

+0

[UTF-8](https://en.wikipedia.org/wiki/UTF-8)不是每個字符1個字節。它是一種可變長度編碼,每個字符使用1到4個字節。 – Jesper