Google
 
Web itpro-blogger.blogspot.com
土曜日, 5月 13, 2006

[Java]変数・定数・配列・文字列・日付・時刻

▼質問
JavaでVBみたいなEnum型はないのか?

▼回答
ないみたい!?でも、バージョン1.5からサポートされるらしい。

列挙型
http://wisdom.sakura.ne.jp/programming/java/java5_6.html

Javaの疑問 - Javaをはじめて疑問におもったこと。
http://www.hyuki.com/yukiwiki/wiki.cgi?Java%a4%ce%b5%bf%cc%e4

▼質問
JavaにVBやC言語のような構造体はないのか?

▼回答
ないみたい!クラスのオブジェクトを使って実現するみたい!?

http://homepage3.nifty.com/teranet/jac/JavaAndC.html

▼質問
文字列を数値に変換するにはどうしたらよいのか?

▼回答
2種類の方法があるらしい。
String str;
int a = Integer.valueOf(str).intValue();
int b = Integer.parseInt(str);

■参考サイト
【Javaの道:(2.文字列から数、数から文字列へのデータ変換)】
http://www.javaroad.jp/java_number2.htm

▼質問
日付を表示するにはどうしたらよいのか?

▼回答
Date tm = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy'年'MM'月'dd'日'");
System.out.println(sdf.format(tm));
sdf.applyPattern("yyyy/MM/dd");
System.out.println(sdf1.format(tm));

▼質問
Javaには、可変配列のようなものはないのか?VBのようなRedim Preserve(動的配列)のような後から
サイズ変更ができるようなもの!

▼回答
あるよ!ArrayListクラスが実行時の動的配列が可能なクラスだ。

▼質問
YYYY/MM/DD形式とYYYYMMDD形式の日付をDate型で取得したいときはどうするんだい?

▼回答
こんな関数を作ってみたけど、どうかな?

■呼び方
Calendar testCalendar = Calendar.getInstance();
String strDate = "20000101";
testCalendar = setCalendar( strDate );
if ( testCalendar == null ) System.out.println( "NULL" );
Date date = testCalendar.getTime()
strDate = "2006/09/09";
testCalendar = setCalendar( strDate );
if ( testCalendar == null ) System.out.println( "NULL" );
Date date = testCalendar.getTime()


■変換関数
private Calendar setCalendar( String strDate ) {
int year = 0, month = 0, date = 0;
Calendar makeCalendar = Calendar.getInstance();
if ( strDate.split( "/" ).length > 2 ) {
// YYYY/MM/DD形式
if ( strDate.split( "/" ).length < 3 ) return ( null );
String[] val = strDate.split("/");
year = Integer.valueOf( val[0] ).intValue();
month = Integer.valueOf( val[1] ).intValue();
date = Integer.valueOf( val[2] ).intValue();
}
else {
// YYYYMMDD形式
if ( strDate.length() < 8 ) return ( null );
year = Integer.valueOf( strDate.substring( 0, 4 ) ).intValue();
month = Integer.valueOf( strDate.substring( 4, 6 ) ).intValue();
date = Integer.valueOf( strDate.substring( 6, 8 ) ).intValue();
}
makeCalendar.set( year, month, date );
return ( makeCalendar );
}

この関数にはバグがあった。(^^;
カレンダークラスに値をセットする時は月をマイナス1しないといけないのね!
逆に値をゲットする時はプラス1をしないと駄目なのね!

修正すると下記の箇所が
makeCalendar.set( year, month, date );
から
makeCalendar.set( year, month-1, date );
なる。

▼質問
日付のフォーマットで23時間制と24時間制を指定するにはどうしたらいいの?

▼回答
23時間制は、Hを指定するとできるよ。24時間制は、kだよ。

▼質問
日数を求めたい時はどうするんだい!

▼回答
こんな関数を作ってみたけど、どうかな?

private int getDays( Date from, Date to ) {
Calendar fromDate = Calendar.getInstance(); // 日付(From)
fromDate.setTime( from );

Calendar toDate = Calendar.getInstance(); // 日付(To)
toDate.setTime( to );

// ミリ秒取得
long diff = (toDate.getTime()).getTime() - (fromDate.getTime()).getTime();
int days = (int)(diff / (24*60*60*1000));

return days;
}

■参考サイト
【[JavaHouse-Brewers:28526] Re: 日数の計算】
http://java-house.jp/ml/archive/j-h-b/028526.html

▼質問
カレンダークラスを生成するときに、タイムゾーンを指定しないとどうなるの?
Calendar calendar = Calendar.getInstance();
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("JST"));

▼回答


▼質問
小文字を大文字に変換するにはどうするの?

▼回答
文字列クラスのtoUpperCaseを使えば変換できるよ。だけど、英文字だけしか変換されないよ!
数字は大文字にならないみたい・・・。

ネットで探したらこんなサンプルがあった。(^^)v
■参考サイト
http://www7a.biglobe.ne.jp/~java-master/samples/string/HankakuNumberToZenkakuNumber.html

▼質問
final変数って何だ?Eclipseを使っていると警告の候補として出てくるから
そのままわからずに使っていたけど・・・(^^;←そんなんでよいのかと怒られそうだが。。。

▼回答
finalをつけて宣言すると、変数に値を代入しても値が変わらないから、間違えて代入しても
プログラムの意味が変わらないようにできるメリットがあるようだ。

メソッドの入力パラメータには、finalをつけた方がよいと言うことなのかな?

■参考サイト
【[java] final 変数を使う】
http://www.soi.wide.ad.jp/class/20030028/slides/03/32.html
【[Java Memo] About final】
http://www02.so-net.ne.jp/~komori/doc/java/final.html






Comments: コメントを投稿

<< Home

This page is powered by Blogger. Isn't yours?