サイズが1MBを超える場合は、文字列を切り取る必要があります。JAVAのサイズに基づいて文字列を切り取る方法は?
どのように私はjavaでそれを行うことができますか?基本的に1MB以上のものは切り落とされなければならず、ちょうど1MBサイズ以下の文字列を取得する必要があります。
サイズが1MBを超える場合は、文字列を切り取る必要があります。JAVAのサイズに基づいて文字列を切り取る方法は?
どのように私はjavaでそれを行うことができますか?基本的に1MB以上のものは切り落とされなければならず、ちょうど1MBサイズ以下の文字列を取得する必要があります。
は、あなたの文字列のため、このコードを試してみてください。
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);
}
}
Javaは文字の2バイトを検討してください。しかし、それはまだ使用されるエンコーディングに基づいて変化します。 Refer the link for more detail
文字あたり1バイトを要するUTF-8エンコーディングを使用している場合を考えてください。 1 MBの1048576バイトごとに切り詰めることができます。
[UTF-8](https://en.wikipedia.org/wiki/UTF-8)は1文字あたり1バイトではありません。これは可変長のエンコーディングで、1文字あたり1〜4バイトを使用します。 – Jesper
あなたの質問に対する答えは、あなたの文字列の_encoding_に依存すると思います。いくつかの鈍い中国語文字は4バイトを取るかもしれないが、基本ASCII文字は1バイトしか取らないかもしれない。 –