FC2ブログ

スポンサーサイト

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

【Java】Javaは、全角数字も数字として判断できると知りました。

以前に書いた記事にコメントがついており(名無しの方)、
親切にもコードが書いてありました。(ありがとうございます!)
その中に知らないメソッドがあり、そのメソッドが便利だと思いましたので、
自分のメモ的・勉強を兼ねてエントリー。

<便利だと思ったメソッド>
・lastIndexOf
 引数によって、多少意味合いが異なってきますが、指定した文字列が一番右に
  出現する位置のインデックスを返す。(intで返す。)
 今回はその返り値を利用して、substringで必要な数字を引き出しています。
 ※+1しないと、,(カンマ)も含まれてしまう為に+1している。

<コメント欄に書かれていたコードを引用してちょっと変更したコード>

import java.util.*;

public class Sort implements Comparator {
public static void main(String[] args) {
Sort sort = new Sort();
sort.execution();
}

public void execution() {
ArrayList<String> data = new ArrayList<String>();
data.add("あいう,24,10");
data.add("test,8,7");
data.add("機械,20,9");
data.add("スーパー,14,11");
data.add("レスキュー,5,21");

Collections.sort(data, this);

for (String element : data) {
System.out.println(element);
}
}

public int compare(String o1, String o2) {
Integer key1 = new Integer(o1.substring(o1.lastIndexOf(',') + 1));
Integer key2 = new Integer(o2.substring(o2.lastIndexOf(',') + 1));

return key2.compareTo(key1);
}
}


上記コードを実行すると、自分的に ちょっと凄いことが発生しました。
全角の10が、ちゃんと10として認識しています。

で、文字か数字か判定するメソッドがあるので、確認してみる。
※isDigitメソッドを使うと、数字ならtrueを 数字以外ならfalseを返す。

class Test{
public static void main(String [] args){
char c = '7';
System.out.println(Character.isDigit(c));
}
}


で、「true」が返ってくると。。。
Javaの新たな一面を発見・・・。
スポンサーサイト

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

コメント

非公開コメント

プロフィール

unyouman

Author:unyouman
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

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