2013年10月30日水曜日

バイト列と文字列の変換

Stringオブジェクトからバイト列に変換するには、getBytesメソッドを利用する
//StringオブジェクトからUTF-8のバイト列に変換
String s = "abc";
byte[] bytes = s.getBytes(”UTF-8”);
for (byte b : bytes){
System.out.println(b);
}

UTF-8のバイト列からStringオブジェクトの生成
//UTF-8のバイト列からStringオブジェクトに変換
byte[] bytes = new byte[]{ (byte)0xe3, (byte)0x81, (byte)0x82, (byte)0xe3, (byte)0x81, (byte)0x84};
try{
String s = new String(bytes, "UTF-8"); //"あい"を出力
System.out.println(s);
}catch (java.io.UnsupportedEncordingException e){}

後者の方はあんまり使わないだろうけど参考までに。
以上です。

2013年10月29日火曜日

文字と文字列の変換

javaでは文字列を文字の集まりとしてとらえず、文字列という一つのオブジェクトとしてとらえることが水晶されているが、内部的には文字列は文字(char型)の配列として実装されている。

Stringオブジェクトの文字列から文字を1文字単位で取り出すにはcharAtメソッド。
Stringオブジェクトの文字列から文字(char)の配列をで取り出すにはtoCharArrayメソッド。
//Stringからcharの配列に変換
String s = "moo";
char[] arr = s.toCharArray();

StringBuilderオブジェクトの文字列を文字の配列に変換するにはgetCharsメソッド。
//StringBuilderからcharの配列に変換
StringBuilder sb =  new StringBuilder("moo");
char result[] = new char[sb.length()];//必要な長さを取得
sb.getChars(0, result.length, result, 0);

文字の配列からStringオブジェクトを生成するには文字の配列を引数に渡してStringオブジェクトを取得
//charの配列からStringオブジェクトを生成
char[] arr = {'m', 'o', 'o'};
String s1 = new String(arr);

文字の配列からStringBuilderオブジェクトを生成するにはappendメソッド。
//charの配列からStringBuilderオブジェクトを生成
char[] arr = {'m', 'o', 'o'};
StringBuilder sb = new StringBuilder;
sb.append(arr);

StringBuilderのは使う気がするね!
以上です。

2013年10月28日月曜日

Stringの比較

stringの比較には”==”を使ってはならない。
”==”で一致するのは文字列リテラルのときのみ。
String s1 = "012";
String s2 = "01";
s2 += "2";
//s1 == s2 は不成立

変数が参照する文字列オブジェクトと文字列リテラルを同値比較するとき、
次の方法は避ける。

s.equals("012");

上記はsがnullのときNullPointerExceptionが発生する。
正しくは以下。
"012".equals(s);

StringBuilderオブジェクトと同値比較をする場合、contentEqualsメソッドを使う。
contentEqualsメソッドはStringオブジェクト同士の比較にも使える。
以下のように比較する。
StringBuilder sb1 = new StringBuilder("012");
StringBuilder sb2 = new StringBuilder("012");
sb1 == sb2; //false
sb1.equals(sb2);//false
sb.toString().contentEquals(sb2);//true


ちょっとややこしいけど、文字列大事。

以上です。


2013年10月25日金曜日

SyntaxHighlighter

ブログを始めるテスト。
コードを掲載する方法も試行。

BloggerにSyntaxHighlighterを導入する方法は
http://moririn-web.blogspot.jp/2010/03/bloggersyntax-hilighter.html
このへんを参照。

背景の色味は
http://3891s.blogspot.jp/2013/02/syntaxhighlighte-code-up.html
このへんを参照。

試しにjavaのコードを載せてみる。

public static void main(String[] args){
System.out.println("Hello World!!")
}

見やすくていい感じ。

以上です。