- 締切済み
文字列分割(JAVA)
こんにちわ。 JAVAにてですが、文字数不明の全角文字列があるとします。 そこで文字数が50文字以内だった場合は格納先Aに、 51文字以上だった場合には50文字以内を格納先Aへ、 それ以降の文字を格納先Bへ。 格納先Bに入る文字列が51文字以上の場合は 51文字以降を切り捨てる。 ※ここで言う文字数はすべて全角文字として考えます。 上記の内容についてですが極力ライブラリ(API)を使わずに 実装したいと思っているのですが、参考書などを見るとどれも 使っていまして実装に困っています。。 よろしければご教授して頂きたいです。 以上、よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- salsberry
- ベストアンサー率69% (495/711)
>A1,String型となっている文字列です。 >A2,半角の文字が混在することはありません。 でしたら、そのString型の文字列をsとすると、s.length()で長さを判定して、51文字以上100文字以下だったら 格納先A ← s.substring(0,50) 格納先B ← s.substring(50) でいいですよね。 50文字以下、101文字以上の場合も難しいことは何もないと思います。
- salsberry
- ベストアンサー率69% (495/711)
いくつか質問があります。 1. その「全角文字列」はファイルから読み込む想定ですか? それとも、既にJavaのString型になっている文字列ですか? 2. その「全角文字列」は文字コードは決まっていますか? 半角の文字が混在することはありますか? 3. 「極力ライブラリ(API)を使わずに」ということですが、Stringクラスのメソッドも使用禁止ですか? もしJavaのString型であれば、全角とか半角とかを考えることなくStringクラスのlength()とsubstring()で済みそうな話ですが。
補足
上記の内容に回答させていただきます。 A1,String型となっている文字列です。 A2,半角の文字が混在することはありません。 A3,主にio*などのインポートに関する部分です。 以上、よろしくお願い致します。
- koko_u_u
- ベストアンサー率18% (216/1139)
>上記の内容についてですが極力ライブラリ(API)を使わずに >実装したいと思っているのですが なぜライブラリを使いたくないのか、あなたの言う API とは具体的に何かを補足にどうぞ。
補足
上記の内容についてお答えしたいと思います。 現在携わっている開発にてフレームワーク内の 関数を使用されていることが推奨されています。 APIとは主にインポート文にて新たに使用できる関数(機能)などです。 以上、よろしくお願い致します。
お礼
ご丁寧な回答をありがとうございます。 明日さっそく上記の方法で実装して参りたいと思います。 ありがとうございました。