ホームページ Java &#&チュートリアル har[] と String 型が占めるバイト サイズの問題

har[] と String 型が占めるバイト サイズの問題

Aug 08, 2019 pm 04:35 PM
java

har[] と String 型が占めるバイト サイズの問題

C言語

1, char a[10] = {"中国"}, これはいくつバイトは占有しますか?

回答: 10 バイト必要です。

分析: 上記のコードは、 a に値を割り当てます。

a[0]='C'、a[1]='h'、a[2]='i'、a [3]='n'、a[4]='a'、a[5]='\0'、a[6]='\0'、a[7]='\0'、a [8 ]='\0', a[9]='\0'

つまり、10 バイトを占有します。

2.「中国」のみを指す場合?

答え: 合計 6 バイト。中国は 5 バイトを占め、'\0' で終わり、1 バイトを占めます。

Java 言語の場合

1. String s = "China"; は何バイトを占めますか?

答え: 5 バイト。

 System.out.println(Charset.defaultCharset());//获取ide默认编码类型
String s = new String("China".getBytes());
byte[] b = s.getBytes();
System.out.println("" + b.length);

上記のコードは、「中国」が占めるバイト長が 5

2 であることを出力できます。 String s = "China"; は何バイトを占めるでしょうか?

回答: 漢字の場合、エンコードを考慮する必要があります。

(1) GBK エンコード (IDE のデフォルト) では、各漢字は 2 バイトを占有し、次に中国は 4 バイトを占有します。

(2) UTF-8 でエンコードされると、各漢字は 3 バイトを占有するため、中国は 6 バイトを占有します。

3. トランスコーディングの問題、GBK を UTF-8 に変換すると、バイト使用量が増加しますか?逆はどうでしょうか?

//获取的是 UTF-8编码
System.out.println(Charset.defaultCharset());
String s;
try {
        s = new String("中国".getBytes(),"GBK");
        byte[] b = s.getBytes();
        System.out.println("" + b.length);
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
}

上記のコードは、UTF-8 から GBK へのエンコード形式であり、s の長さは 6 バイトから 9 バイトに変わります。

s コンテンツの変更: 中国 —> Juan浗

現在のエンコードは UTF-8 であるため、トランスコード後は 3 文字になり、9 バイトを占有します。ただし、逆の状況は次のようになります:

China (gbk) —> ?й? (utf-8)

s 長さは 4 バイトから 4 バイトに変わりますが、長さは 4 バイトから 4 バイトに変わります。テキストは変わっていません。ここ ? 1バイトを占有します

以上がhar[] と String 型が占めるバイト サイズの問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaのデッドロックとは何ですか?どうすればそれを防ぐことができますか? Javaのデッドロックとは何ですか?どうすればそれを防ぐことができますか? Aug 23, 2025 pm 12:55 PM

adeadlockinjavaoccurswhentwoorthoreThreadsareblockededforever、それぞれの方向に、通常はdueTococularwaitcausedistentlockdoringを使用します

Javaでオプションの使用方法は? Javaでオプションの使用方法は? Aug 22, 2025 am 10:27 AM

useoptional.empty()、optional.of()、andoptional.ofnullable()tocleateoptionalinstancesは、null、ornull、orpossivally null.2.ceeckforvaluessafelyusingispresent()orpreferablesifppresent()directnullted()aboiddirectnullted()aboiddirestinect()ofoiddirestinect()ofoiddirefrestnullterisent()

Spring Data JPAおよびHibernateを使用したJavaの持続性 Spring Data JPAおよびHibernateを使用したJavaの持続性 Aug 22, 2025 am 07:52 AM

SpringdatajpaとHibernateの核心は一緒に働いています。1。JPAは仕様であり、Hibernateは実装であり、Springdatajpaのカプセル化はDAO開発を簡素化します。 2。エンティティクラス@Entity、@ID、@Columnなどを介してデータベース構造をマップします。 3。リポジトリインターフェイスはJParePositoryを継承して、CRUDおよび名前付きクエリメソッドを自動的に実装します。 4.複雑なクエリは、@queryアノテーションを使用してJPQLまたはネイティブSQLをサポートします。 5。スプリングブートでは、スターター依存関係を追加し、データソースとJPA属性の構成により統合が完了します。 6。トランザクションは@Transactionaによって行われます

安全なコーディングのためのJava暗号化アーキテクチャ(JCA) 安全なコーディングのためのJava暗号化アーキテクチャ(JCA) Aug 23, 2025 pm 01:20 PM

プロバイダーメカニズムを介してアルゴリズムを実装するMessaged Gigest、Cipher、Keygenerator、Securerandom、Signature、KeystoreなどのJCAコアコンポーネントを理解します。 2. SHA-256/SHA-512、AES(256ビットキー、GCMモード)、RSA(2048ビット以上)、Securerandomなどの強力なアルゴリズムとパラメーターを使用します。 3.ハードコーディングされたキーを避け、キーストアを使用してキーを管理し、PBKDF2などの安全に派生したパスワードを介してキーを生成します。 4. ECBモードを無効にし、GCMなどの認証暗号化モードを採用し、各暗号化に一意のランダムIVを使用し、時間内に明確な敏感なモードを使用します

修正:Windowsは「必要な特権はクライアントによって保持されていません」を示しています。 修正:Windowsは「必要な特権はクライアントによって保持されていません」を示しています。 Aug 20, 2025 pm 12:02 PM

runtheapplicationorcommandministrator byright-clicking and "runasadministrator" toensureelevatedprivilegeSareSaregranted.2.CheckuseraccountControl(UAC)Settingsearching foruacing foruacing inthestartmenuandSettingtheSedEdeDededefaultLevel(second)

Javaでパターンクラスとマッチャークラスを使用する方法は? Javaでパターンクラスとマッチャークラスを使用する方法は? Aug 22, 2025 am 09:57 AM

パターンクラスは正規表現をコンパイルするために使用され、マッチャークラスは文字列のマッチング操作を実行するために使用されます。 2つの組み合わせは、テキスト検索、マッチング、交換を実現できます。まず、pattern.compile()を介してパターンオブジェクトを作成し、次にそのmatcher()メソッドを呼び出して、matcherインスタンスを生成します。次に、matches()を使用して、完全な文字列マッチングを判断し、()を見つけて、shinkesceence、find()を見つけます。レギュラーにキャプチャグループが含まれている場合、n番目のグループコンテンツはグループ(n)を介して取得できます。実際のアプリケーションでは、繰り返しの編集パターンを避け、特別なキャラクターのエスケープに注意を払い、必要に応じて一致するパターンフラグを使用し、最終的に効率的に達成する必要があります

閉じた後に保存しない笑ゲーム設定[修正] 閉じた後に保存しない笑ゲーム設定[修正] Aug 24, 2025 am 03:17 AM

IfLeagueofLegendssettingsaren’tsaving,trythesesteps:1.Runthegameasadministrator.2.GrantfullfolderpermissionstotheLeagueofLegendsdirectory.3.Editandensuregame.cfgisn’tread-only.4.Disablecloudsyncforthegamefolder.5.RepairthegameviatheRiotClient.

「Javaは認識されていません」CMDのエラー[3つの簡単な手順] 「Javaは認識されていません」CMDのエラー[3つの簡単な手順] Aug 23, 2025 am 01:50 AM

ifjavaisnotcognizedincmd、sulesjavaisinstalled、setthejava_homevariabletothejdkpath、anddthejdk'sbinfoldetotheSystempath.restartcmdandrunjava-versiontoconfirm。

See all articles