MaripoGoda 2012-07-31 14:25:06

[Java] 無駄にString このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

しかも丁寧に使い方が書かれている

class Rect {
	private int width;
	private int height;
	/**
	 * コンストラクタ
	 * @param str 例 "100x200"
	 */
	 public Rect (String str) {
		String[] args = str.split("x");
		width = Integer.parseInt(args[0]);
		height = Integer.parseInt(args[1]);
	}
	…
}
class Point {
	private int x;
	private int y;
	/**
	 * コンストラクタ
	 * @param str 例 "(100,200)"
	 */
	public Point (String str) {
		String substr = str.substring(1, str.length()-1);
		String[] args = substr.split(",");
		x = Integer.parseInt(args[0]);
		y = Integer.parseInt(args[1]);
	}
	…
}

Rect rectA = new Rect("320x480");
Rect rectB = new Rect("640x800");

Point pointA = new Point("(160,240)");
Point pointB = new Point("(320,400)");

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(6)

#1 SAAB_AVA 2012-08-14 04:24:22  

これはPerlから来た人だな。リファレンスの使い方がわかってないと、こうするしか構造体が作れない

#2 myun2 2012-08-14 06:02:16  

初々しくて良いね。(なつかしみを込めて

#3 risuke 2012-08-14 08:24:48  

Web系なら"(160,240)"とかはよくある記述だから使う可能性がないわけではないなーと。 でも()いらないんじゃない?

#4 oe_roel 2012-08-14 15:27:59  

文字列記法から値オブジェクトを作りたいだけというなら、ユーティリティクラスに突っ込んでおくべき事案ですね。

#5 math_neko 2012-08-14 23:19:38  

上は 100 歩譲って理解するが下はないだろ…w

#6 tacticsrealize 2013-04-14 12:21:07  

どこかから"(320,400)"みたいな文字列を取得して、それを解析したいときに使うなら・・・ new Point("(320,400)")?テストコードでしょ(笑)

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[Java] int enum pattern … バ...

このエントリーをはてなブックマークに追加

業務コード使用区分というチェックボックス...

/**
 * 業務コード使用区分のONと業務コード設定区分のONが同一な値の上...

鑑賞する »

[Java] フルHD推奨。

このエントリーをはてなブックマークに追加

画面の左側がわりと無駄な気がします。

public int hoge(){
    int result = 0;
...

鑑賞する »

[Java] 長すぎるor短すぎる関数名

このエントリーをはてなブックマークに追加

Javadocでやれ

public static User findByFirstNameFamily...

鑑賞する »