2017-04-18 44 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