slont_code -5ページ目

slont_code

// 人と知識をつなげるcode

この間、生まれて初めてのプログラミングコンテストに出てみました。全く経験がなかったため、結果は散々でしたが、とても面白かったし、非常に良い経験になりました。

ところで、使った言語はJavaだったのですが、Javaはなんとなく文字列処理が苦手なイメージがありますね。とりあえず、与えられた文字列は全部配列に入れちゃえばなんとかなりそう!と単純な思考で、読み込むファイルを指定すると、文字列を行と空白に分けて配列格納してくれるという簡単なプログラムを書いてみました。と、これじゃあよくわからないので、コードを以下に。

SampleProg.java
public ArrayList<ArrayList<String>> fileReader() {
try {
ArrayList<ArrayList<String>> allStr = new ArrayList<ArrayList<String>>();
File file = new File(FILEPATH);
Scanner sc = new Scanner(file);

while(sc.hasNext()) {
ArrayList<String> lineStr = new ArrayList<String>();
String tmpStr = sc.nextLine();
Scanner lineSc = new Scanner(tmpStr);

while(lineSc.hasNext()) {
lineStr.add(lineSc.next());
}
allStr.add(lineStr);
lineSc.close();
}
sc.close();
return allStr;
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}

public static void main(String[] args) {
FileRW frw = new FileRW();
System.out.println(frw.fileReader("test.txt"));
System.out.println(frw.fileReader("test.txt").get(3));
System.out.println(frw.fileReader("test.txt").get(3).get(2));
}

テキストを読み込むと
test.txt
fas gfe
gagb wryj hyetrs
gwvsrgbwtrb
bw rb wr stb
wetgw twh dfgwetrrwhrw
hwth whrw thtwr

こんな感じに出力されます。
[[fas, gfe], [gagb, wryj, hyetrs], [gwvsrgbwtrb], [bw, rb, wr, stb], [wetgw, twh, dfgwetrrwhrw], [hwth, whrw, thtwr]]
[bw, rb, wr, stb]
wr

リソース食いまくりですが、わかりやすいかと(笑)
サンプルコードちょっと変えれば、ライン毎に処理出来たりするので、例えば空白抜きの文字数調べるのとか、マッチングには使えるんじゃないかな、と思います。
Google APIをちょっと使ってみたいな~と思いまして、以下のサイト様を参考に、Google Task APIを利用するサンプルプログラムをJavaで組んでみました。

 [Google API][Java]Google Tasks APIを使ってみた

まあ手順は上記を参考にして頂ければと思いますが、サンプルプログラムを動かす段階で、com.google.api.client.auth.oauth2.draft10など無い!と言われ、エラーになってしまいます。一応手順通りjarは入れていたんですけど、最新版にはこれらのパッケージが含まれていないみたいです。インポートされなかったのは以下のクラスです。

com.google.api.client.auth.oauth2.draft10.AccessTokenResponse;
com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessProtectedResource;
com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessTokenRequest.GoogleAuthorizationCodeGrant;
com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAuthorizationRequestUrl;
com.google.api.services.tasks.v1.Tasks;

導入したjarの中で同じ名前のクラスが無いかな~とか結構な時間調べてたんですが、結局別のjarを入れることにしました。以下のサイトからjarをダウンロードして上手くいくと思います。それぞれ、パッケージと対応しているjarです。

google-oauth-client-1.6.0-beta.jar
google-api-client-googleapis-1.4.1-beta.jar
google-api-services-tasks-v1-1.0.0-beta.jar

後は普通に実行すれば、コンソールに表示されると思います。
こういった知識には疎いので、なかなか焦りましたが、いい勉強になりました。
emacsを起動すると、ウインドウが上下に2分されて出てくるんですが、いちいち消すのめんどくさいし、ググってみました。単純に.emacs
(setq inhibit-startup-message t)
って書き足せばOKです。

ちなみに、2分割して表示したい場合は
(setq w (selected-window))
//左右に2分割
(setq w2 (split-window w nil t))
//上下に2分割
(setq w3 (split-window w nil nil))
らしいです。参考までに。