2017-04

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

java list get 最初 要素

超久しぶりにJAVAのメモ

ArrayListを使ってて、一番最初の要素を取ろうと思ったが、getでどうやるかうる覚えだったので調べた。

やっぱりget(0)でOKみたいだ。ただし何もインデックス番号を指定しないで挿入した場合。

http://always-pg.com/java/j2se_rd/data_list/listinsert.html

List list = new ArrayList();
list.add("Java1.2");
list.add("Java5.0");
list.add(1, "Java1.4");
list.add(1, "Java1.3");

String str0 = (String)list.get(0);
String str1 = (String)list.get(1);
String str2 = (String)list.get(2);
String str3 = (String)list.get(3);

ソースファイル

str0 は "Java1.2"、str1 は "Java1.3"、str2 は "Java1.4"、str3 は "Java5.0" になります。




http://www.nextindex.net/java/collection/ArrayList.html
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

JAVA SQL :日付で検索

Javaからその日の日付に一致するデータを
MySQLから取ろうと思ったけど、意外に難しかった。
java.util.Date型からjava.sql.Date型に変換しようと思ったけど、うまくいかなかった。

そこでStringでワンクッション入れて、
SQLの関数のDATEを使ったらできた。
もっとスマートな方法ないかなぁ・・・

java.util.Date timestamp; ←JAVAのjava.util.Date型に対応した日付
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String s = sdf.format(timestamp);
System.out.println("文字列の時間"+s.toString());
String sql = "SELECT * FROM test.table WHERE DATE(date_col) ='"+s+"'";


こうすると
2007年1月1日に当てはまるデータが全てとれる。

参考リンク
http://private.ceek.jp/archives/002738.html
http://d.hatena.ne.jp/m383m/20071107/1194442573
http://dev.mysql.com/doc/refman/4.1/ja/date-and-time-functions.html

テーマ:プログラミング - ジャンル:コンピュータ

java windowsで作ったjarファイルをLinuxで動かす

eclipseで作ったプロジェクトをLinuxでバッチファイルとして動かすことになった。

JAVAはあんまりなれてないので、方法をほかの人に教えてもらった。
やり方はちょっと特殊かも
1.Linuxで動かしたいプログラム(プロジェクトの中のaaa/bbb/xxx.java)をjarとしてエクスポートする
2.生成したxxx.jarとプログラムが使う外部jar(ここではinforma.jarとかmysql-connector-java-5.0.7-bin.jar)を一緒にLinuxの適当なディレクトリにいれる。
3.そのディレクトリで

java -cp `echo *.jar|sed 's/ /:/g'` aaa/bbb/xxx


とコマンドを打ったら実行できた。

echo。。。。とかはちょっと分からないので、誰か教えてくれると助かります。おまじないだと思って使ってます。
eclipseを使ってエクスポートすると階層もそのままエクスポートされたので、普通に

java -cp `echo *.jar|sed 's/ /:/g'` xxx


とだけ打っても

Exception in thread "main" java.lang.NoClassDefFoundError: xxx
とエラーが出てしまうので、プロジェクトの階層どおりにaaa/bbb/xxxとしないといけない。


おまけ
バッチファイルとして登録する方法
4.

#/bin/sh -x
cd /home/user-name/test
java -cp `echo *.jar|sed 's/ /:/g'` aaa/bbb/xxx



という風な感じのシェルスクリプトを書いてaaa.shとしておく
cdはcrontabを起動するときのディレクトリが違うから、毎回同じディレクトリで動くように。
5.

erontab -e


で登録する。

*/10 * * * * /home/user-name/aaa.sh

テーマ:プログラミング - ジャンル:コンピュータ

java informaの日付変換 String とか long とか

informaを使ってRSSの情報を取ってるが、
DBに格納するために日付のフォーマットを変えたらエラーが出た。

そこで、ためしに一度Stringに変えてDate型にしても

DateFormat foramt_test=new SimpleDateFormat("yyyy/MM/dd");
Date date = foramt_test.parse(item.getDate().toString());


下のようなエラーが出てしまった。
Unparseable date: "Wed Sep 12 17:20:00 JST 2007"
at java.text.DateFormat.parse(Unknown Source)

で、結局

java.util.Date tempDate = new Date(item.getDate().getTime());

としたら解決した。
Stringだとやっぱり変換がシビアなのかな。
それともinformaのバグ?

テーマ:プログラミング - ジャンル:コンピュータ

JAVA外部コマンド実行(exe)後の出力情報取得

形態素解析ソフトをJAVAで組み込んで使うプロジェクトだが、Windows環境でJAVAに組み込むのが面倒だったので、とりあえず形態素解析ソフト(KAKASIとか)で解析した結果をとってきてそれを使えばいいやと思った。

でも意外と難しく
Runtime.getRuntime().exec( "xxx.exe" );
を使えばいいのはすぐに分かったが、
Runtime.getRuntime().exec( "./kakasi/bin/kakasi -w < aaa.txt" );
を動かそうとするとダメになる。
どうやら「<」が問題らしい。

で、いろいろ調べて

proc = Runtime.getRuntime().exec( "./kakasi/bin/kakasi -w" );
BufferedWriter bw = new BufferedWriter((new OutputStreamWriter(proc.getOutputStream())));
bw.write("今日はJAVAで分かち書きを試しました。");
と2ステップに分ければできることが分かった。
あとは
BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
で結果を読み取ればOK


import java.io.*;
public class ExecTest {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
Process proc;
String result;
try {
proc = Runtime.getRuntime().exec( "./kakasi/bin/kakasi -w" );

BufferedWriter bw = new BufferedWriter((new OutputStreamWriter(proc.getOutputStream())));
//文を入れる
System.out.println("今日はJAVAで分かち書きを試しました。");
bw.write("今日はJAVAで分かち書きを試しました。");
bw.close();

//出力を読み取る
BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
while ((result = br.readLine()) != null)
{
System.out.println(result);
}
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();

}
}
}


参考リンク
外部のプログラムを実行するには? - [Javaプログラミング]
外部コマンド実行でのリダイレクトについて
JavaFAQ: 外部コマンド呼出し

テーマ:プログラミング - ジャンル:コンピュータ

«前のページ  | HOME |  次のページ»

トラックバックは内容に関連性があればOKです。リンクを張らなくてもかまいません
FC2 Blog Rankingへ投票現在UNIXランキング一位
人気blogランキングへ現在TOP10

プロフィール

fdsafdsa

Author:fdsafdsa


ページランク Valid CSS!
人気ブログランキング - BitTorrent と フリーソフト や OS を広めるブログ

ブログ内検索

カテゴリー

フリーエリア

最近の記事

最近のコメント

リンク

このブログをリンクに追加する

月別アーカイブ

ブロとも申請フォーム

この人とブロともになる

Powered By FC2ブログ

ブログやるならFC2ブログ



アクセスランキング

最近のトラックバック

RSSフィード

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。