• ベストアンサー

Java StringBuilderクラスについて

StringBuilder sbJSON = new StringBuilder(); StringBuilderクラスについて教えて頂きたいのですが StringBuilderクラスは可変長の文字列を扱うクラスだと思うのですが この可変長の文字列と通常の文字列の違いについて調べてみたところ 可変長文字列:とりあえず、自由に文字列を入れられる。 固定長文字列:決めた上限文字数までしか入れられない。 とあったのですが StringBuilderクラスは Stringクラスの拡張版みたいなものと捉えて良いのでしょうか?

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • hiodraiu
  • ベストアンサー率15% (448/2824)
回答No.1

拡張版をどう捉えるかですが、個人的には拡張版って言われると上位互換でも有りそうな気がしますが、そんなことはないですよね。 各クラスのは、それぞれ目的があると思います。目的は仕様を見れば一目瞭然じゃないでしょうか。質問者様の考える拡張版と仕様とが合致するなら、それは拡張版なのでしょうね。

関連するQ&A

  • Stringクラスは他のクラスとどう違う?

    Objectクラスを抽象クラスとするサブクラスに Stringというクラスがあります。 ストリングオブジェクトの宣言は下記のようにします。 String[] url = new String[2]; ストリングクラスは以下のように宣言時に初期化が可能です。 String[] url = {"honyahonya.com","0"}; また、以下のような指定も出来ます。 this.method( new String[]{"honyahonya.com","0"} ); そこで質問ですが Stringとはなぜこのような扱い方ができるのですか? 他のクラスとは、例外的に扱いが違うだけなのですか? 初期化で指定した文字列はどのように解釈されて、どういう 扱いがされているのでしょうか? 普段はなんとも思わず使っていますが なんとなく気になりませんか・・・。

    • ベストアンサー
    • Java
  • StringBuilderをStringに代入

    StringBuilderを使って文字列連結して、それをSQL文(String型)として利用するプログラムを作りました。 ※SQLはループ処理で約10万個ぐらい発行→実行します StringBuilderの文字列を、最終的にString型の変数(strSql)に代入するのですが、 下記のどちらで代入する方がコスト掛からないでしょうか? A案. ---------- StringBuilder sb = new StringBuilder(); sb.append(変数a); sb.append(変数b); sb.append(変数c); String sqlStr = new String(sb); ---------- B案. ---------- StringBuilder sb = new StringBuilder(); sb.append(変数a); sb.append(変数b); sb.append(変数c); String sqlStr = sb.toString(); ---------- 教えてください。

    • ベストアンサー
    • Java
  • javaというか文字列について少し質問です><

    javaというか文字列について少し質問です>< javaというか文字列について少し質問です>< お願いします。 シーザー暗号で文字列をずらすためのクラスのメソッドをつくったのですが・・・ String decrypt(String str,int key) { StringBuffer sb = new StringBuffer(); // もしくはStringBuilder for(int i=0;i<str.length();i++){ char c=str.charAt(i); c=(char)((int)c-key); sb.append( c ); } こんな感じなのですがアルファベットの小文字26文字のみとしたいので暗号化や復号化の際に越えてしまう場合はアルファベット内でループさせたいのですがいまいちやり方が浮かびません><越えてしまう場合はzからひいたものを表現させれば良いかと思いやってみたのですが全然違う文字が出てきてしまいました。何かいい方法を教えてください。お願いします><

    • ベストアンサー
    • Java
  • クラスの使い方が分からない

    文字列を返すというクラスbを作りました。 bは引数が1つあって、引数に与えられた文字の手前に"f"を挿入した文字を返します。 結果は"fh"となることを期待しました。 期待通りになるように修正していただけませんか? public class a {  public static void main (String args[]) {   String g = b("h");   System.out.println("Hello World!!");  } } public class b {  b(String c){   d(c);  }  private String d(String c) {   String e = new String("f" + c);   return e;  } }

  • VBの文字列型について教えてください

    VBの文字列型についてヘルプを見てもわからないことがあります。 どなたか教えてください。 MSDNのヘルプでは、「固定長」は64kBまで、「可変長」は2GBまで、と何箇所も書いてあります。 が、どのようにしたら可変長に指定できるのかがわかりません。 最大で数MBのテキストファイル内容を1つの文字列変数に入れて扱えたら助かるんですが・・・・ お願いします。

  • javaについて質問です。

    javaについて質問です。 シーザー暗号の暗号化と復号化のプログラムをつくりたいのですが... import java.io.*; class Prob6_2 { public static void main(String [] args)throws IOException { int key; //キー番号 String orgStr; //ターゲット文字列 String encStr; //暗号化文字列 String decStr; // 復号化文字列 String temp; BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); System.out.print("ターゲット文字列:"); orgStr=br.readLine(); System.out.print("キー番号:"); temp=br.readLine(); key=Integer.parseInt(temp); Cipher cip=new Cipher (); encStr=cip.encrypt(orgStr,key); decStr=cip.decrypt(encStr,key); System.out.println("[Original Code]"+orgStr); System.out.println("[Encrypted Code]"+encStr); System.out.println("[Decrypted Code]"+decStr); } } class Cipher { String encrypt(String str,int key) { for(int i=0;i<str.length();i++){ char c=str.charAt(i); c=(char)((int)c+key); /*この後どのように一つずつの文字をつなげて文字列にしたら良いか分かりません。StringBuffer クラスのインスタンス をつかうといいというヒントは問題集に書いてあるのですが....教えて下さい*/ } } String decrypt(String str,int key) { for(int i=0;i<str.length();i++){ char c=str.charAt(i); c=(char)((int)c-key); /*この後どのように一つずつの文字をつなげて文字列にしたら良いか分かりません。StringBuffer クラスのインスタンス をつかうといいというヒントは問題集に書いてあるのですが....教えて下さい*/ } } } class Cipherのところにコメントでも書いてあるのですが、一つずつの文字をつなげて文字列にしたら良いか分かりません。どのように実現したら良いのでしょうか?><教えてください>< 違っているところがあればそこも教えて頂けるとたすかります。 お願いします>< できたらStringBufferをつかったやり方を教えてください><」

    • ベストアンサー
    • Java
  • 秀丸での正規表現を使用した置換

    いつもお世話になっております。 秀丸で正規表現を使用した置換処理を行いたいと思うのですが、どうしても正規表現の式が書けません。 どうかご教示下さい。 <置換前> ABC1 あAbCd++ ... ... ・先頭4文字は半角英数字の大文字固定 ・その後ろにタブ ・最後にかな、英数字、記号などの可変長の文字列 上記で1レコードです。 <置換後> ABC1 String 内容 あAbCd++ ... ... ・先頭4文字そのまま ・その後ろにタブを3つ+改行 ・続いて「内容」という文字列+改行 ・最後に可変長の文字列をそのまま+改行 「置換」の正規表現は以下だと思うのですが、英数字4文字と可変長文字列を別々にマッチさせる「検索」がどうしても分かりません。 \0 String\n内容\n\1\n どうかご教示下さい。 <環境> Ver.6.1.4

  • Javaで配列の長さを知るメソッド

    Javaの配列の長さを知るメソッドを調べています。 例えば String sTest[][] = new String[2][2]; sTest[0][0] = "something"; だとして、sTest[0][0]の長さ(文字数)の9を出力したいのですが、どのようにすればいいのでしょうか。 APIを調べて、クラスArrayのgetlengthを使って System.out.println(getlength(sTest[0][0])); としてみたら駄目でした。 また、Stringクラスのlengthを使って System.out.println(length(sTest[0][0])); としても駄目でした。 まだAPIにあまりなれていないのですが、書き方が間違っているのでしょうか?

    • ベストアンサー
    • Java
  • このクラスをもとに2

    import java.lang.*; import java.io.*; import java.util.*; class SimpleReader{ public static void main(String[] argv) throws IOException{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String s; System.out.print("Input: "); System.out.flush(); s = br.readLine(); } } このクラスをもとにプロンプト「Input: 」を出力して、文字列を入力させ、その文字列を反転(例えば"abc"→"cba")させて出力しつづけ、「end」と入力すると終わるプログラムを教えてください。

    • ベストアンサー
    • Java
  • このクラスをもとに…。

    import java.lang.*; import java.io.*; import java.util.*; class SimpleReader{ public static void main(String[] argv) throws IOException{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String s; System.out.print("Input: "); System.out.flush(); s = br.readLine(); } } このクラスをもとにプロンプト「Input: 」を出力して、文字列を入力させ、その文字列をそのまま出力しつづけ、「end」と入力すると終わるプログラムを教えてください。