레이블이 Java인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Java인 게시물을 표시합니다. 모든 게시물 표시

2017년 11월 23일 목요일

이클립스 단축키

이클립스 단축키

Ctrl + Q   --> 수정전으로 바로 가기.
Ctrl + F11  --> Run As를 실행한 것과 같은 단축키입니다.
Ctrl + D    --> 커서가 위치한 줄 자체를 지워버립니다.
Ctrl + /    --> 주석처리를 위한 단축키 입니다.
                드래그를 한 다음 이 단축키를 누르면 드래그된 줄이 주석 // 처리 됩니다.
Ctrl + Shift + /  ---> 주석처리를 위한 단축키 이며 이는 /* */ 으로 주석처리 됩니다.
Alt + ↓, Alt + ↑ ---> 줄바꾸기입니다. 현재 커서가 위치한 줄을 위쪽 아래쪽으로 이동시켜 줍니다.

Shift + End ---> 한줄 선택하기
End --> 한줄끝으로 가기

ctrl + E ---> 편집기 빠른 전환
              띄워놓은 파일 목록이 뜨며, 선택한 파일로 빠르게 전환이 가능

ctrl + K, ctrl + shift + K
선택한 문자열과 동일한
다음/이전 문자열 찾기, 찾을 문자열을 선택 후, 단축키 실행

ctrl + alt + D
디버그 모드로 서버를 실행
ex) Tomcat v9.0 at localhost 선택 후, 단축키 실행

[Java > Editor > Folding] 클릭해서 아래처럼 체크를 합니다.
대부분 [Header Comments / imports]를 체크하시는데 각자에 맞게 체크하시면 됩니다.


Navigation

Ctrl + Shift + E : 에디터안에서 열린 파일간의 이동
Ctrl + E : 에디터안에서 열린 파일간의 이동(작은 레이어로 뜬다.)
Ctrl + F6 : 에디터안에 열링 파일간 이동하는데 F6누를때마다 하나씩 순차적으로 넘어감.
Ctrl + E : 퀵 에디터간 이동
Ctrl + F7 : 뷰간 전환
Ctrl + F8 : 퍼스펙티브 간 전환
F12 : 어디서든 에디터로 포커스 됨


etc..
Ctrl + Shift + L : 단축키 리스트
Ctrl + 3 : Quick Access
Ctrl + M : 화면 최대화
Ctrl + W : 파일에디터 닫기
Alt + Shift + X, R : Run on Server
F11 or Ctrl + F11 : 최근 실행한 Run 실행


Information
Ctrl + Shift + R : 리소스 찾기
Ctrl + O : 레이어로 현재파일의 Outline 보여줌
Ctrl + T : 레이어로 계층구조 보여줌
Ctrl + Shift  + Space : 메서드의 괄호안에서 누르면 파라미터 타입 볼 수 있음.
Ctrl + 1 : 에러난 곳(빨간 줄 표시)에서 누르면 레이어로 해결방법이 나옴.
F3 : 해당 메서드나 클래스가 정의된 곳으로 이동
Ctrl + Shift + G : 해당 메서드, 객체, 변수가 사용(호출)된 모든 곳을 찾는다.

StringUtilsの使い方


「文字列がnullのときの例外処理が面倒」
「文字列を調べる方法を知りたい」
「空白や特定の文字を削除したい」
「文字列を置換や追加したい」

StringUtilsの使い方

StringUtilsクラスは、文字列がnullの場合でもNullPointerExceptionの例外が
発生しないように作られています。

そのため、文字列がnullの場合に例外を回避するコードを書く手間を省くことができます!

StringUtilsクラスは「Apache Commons Lang」のライブラリに含まれているため、
使用するにはライブラリをダウンロードしてプロジェクトに追加する必要があります。

ライブラリのダウンロードページはこちらです。
http://commons.apache.org/proper/commons-lang/download_lang.cgi

また、ライブラリを使うには次のようなimport文が必要です。
import org.apache.commons.lang3.StringUtils;

nullの処理以外は標準APIと同じ動作をするため、
この記事では文字列がnullの場合の動作を中心に解説します。

文字列を調べる方法

文字列がnullか空か空白か調べる

文字列がnullか空か空白かを調べるにはisEmptyメソッドと
isBlankメソッドを使います。

次の例でisEmptyとisBlankの動作を確認してみましょう。


StringUtils.isEmpty(null)   // true
StringUtils.isEmpty("")   // true
StringUtils.isEmpty(" ")   // false

StringUtils.isBlank(null)   // true
StringUtils.isBlank("")   // true
StringUtils.isBlank(" ")   // true

StringUtils.isEmpty(null)   // true
StringUtils.isEmpty("")   // true
StringUtils.isEmpty(" ")   // false

StringUtils.isBlank(null)   // true
StringUtils.isBlank("")   // true
StringUtils.isBlank(" ")   // true
文字列がnullの場合でも、isEmptyとisBlankは例外を発生させずに”true”を
返しているのが確認できます!

文字列を比較する

文字列を比較するにはequalsメソッドとcompareメソッドを使います。


StringUtils.equals(null, null)   // true
StringUtils.equals(null, "a")   // false

StringUtils.compare(null, null)   // 0
StringUtils.compare(null , "a")   // -1
StringUtils.compare("a", null)   // 1

StringUtils.equals(null, null)   // true
StringUtils.equals(null, "a")   // false

StringUtils.compare(null, null)   // 0
StringUtils.compare(null , "a")   // -1
StringUtils.compare("a", null)   // 1
文字列がnullの場合でも比較ができていることが確認できます!

指定した文字列があるか調べる
指定した文字列があるか調べるにはindexOfメソッドとcontainsメソッドを使います・
StringUtils.indexOf(null, “a”)   // -1
StringUtils.indexOf("abc", "b")   // 1

StringUtils.contains(null, “a”)   // false
StringUtils.contains("abc", “a”)   // true

StringUtils.indexOf(null, “a”)   // -1
StringUtils.indexOf("abc", "b")   // 1

StringUtils.contains(null, “a”)   // false
StringUtils.contains("abc", “a”)   // true
indexOfメソッドのように戻り値がint型の場合は、
文字列がnullのときに”-1”を返します。

アルファベットか数字か空白か全角か判定する

アルファベットや全角、半角などの文字を判定するには、
isAlphaメソッド、isNumericメソッド、
isWhitespaceメソッド、isAsciiPrintableメソッドを使います。


StringUtils.isAlpha(null)   // false
StringUtils.isAlpha("abc")   // true

StringUtils.isNumeric(null)   // false
StringUtils.isNumeric("123")   // true

StringUtils.isWhitespace(null)   // false
StringUtils.isWhitespace("")   // true
StringUtils.isWhitespace("  ")   // true

StringUtils.isAsciiPrintable(null)   // false
StringUtils.isAsciiPrintable("samurai")   // true
StringUtils.isAsciiPrintable("さむらい")   // false

StringUtils.isAlpha(null)   // false
StringUtils.isAlpha("abc")   // true

StringUtils.isNumeric(null)   // false
StringUtils.isNumeric("123")   // true

StringUtils.isWhitespace(null)   // false
StringUtils.isWhitespace("")   // true
StringUtils.isWhitespace("  ")   // true

StringUtils.isAsciiPrintable(null)   // false
StringUtils.isAsciiPrintable("samurai")   // true
StringUtils.isAsciiPrintable("さむらい")   // false
StringUtilsを使うと文字の判定も簡単に行うことができます。


空白や特定の文字を削除する方法

空白や制御文字を削除する

空白や改行コードなどの制御文字を
削除するにはtrimメソッドとstripメソッドを使います。


StringUtils.trim(null)   // null
StringUtils.trim("samurai\n")   // “samurai”

StringUtils.strip(null)   // null
StringUtils.strip("  abc  ")   // “abc”

StringUtils.trim(null)   // null
StringUtils.trim("samurai\n")   // “samurai”

StringUtils.strip(null)   // null
StringUtils.strip("  abc  ")   // “abc”
文字列の先頭と末尾の空白や改行コードが削除できました!

指定した文字を削除する

指定した文字を削除するにはremoveメソッドを使います。

StringUtils.remove(null, "a")   // null
StringUtils.remove("samurai", "a")   // “smuri”

StringUtils.remove(null, "a")   // null
StringUtils.remove("samurai", "a")   // “smuri”
このように文字を指定して削除することができました!

文字列を置換や追加する方法

指定した文字を置換する

指定した文字を置換するにはreplaceメソッドを使います。

StringUtils.replace(null, "a", "b")   // null
StringUtils.replace("samurai", "a", "b")   // “sbmurbi”

StringUtils.replace(null, "a", "b")   // null
StringUtils.replace("samurai", "a", "b")   // “sbmurbi”
このように文字列の置換ができました!

文字列がnullのときに空の文字列に変える

文字列がnullのときに空の文字列を返したい場合には
defaultStringメソッドを使います。


StringUtils.defaultString(null)   // “”
StringUtils.defaultString("")   // “”

StringUtils.defaultString(null)   // “”
StringUtils.defaultString("")   // “”
このようにnullを空の文字列に変えることができました!

文字列を追加する

文字列の先頭に指定した桁数になるように
文字列を追加するには、leftPadメソッドを使います。


StringUtils.leftPad(null, 1)   // null
StringUtils.leftPad("a", 3)   // "  a"
StringUtils.leftPad("a", 3, "b")   //”bba”

StringUtils.leftPad(null, 1)   // null
StringUtils.leftPad("a", 3)   // "  a"
StringUtils.leftPad("a", 3, "b")   //”bba”
同じ文字列を繰り返し追加する場合はrepeatメソッドを使います。


StringUtils.repeat(null, 3)   // null
StringUtils.repeat("abc", 3)   // “abcabcabc”

StringUtils.repeat(null, 3)   // null
StringUtils.repeat("abc", 3)   // “abcabcabc”
このように文字列の追加ができました!


文字列の分割や結合をする

文字列を分割する

文字列を空白や指定した文字で分割するにはsplitメソッドを使います。


StringUtils.split(null)   // null
StringUtils.split("samu rai")   // ["samu", "rai"]
StringUtils.split("samu,rai", ",")   // ["samu", "rai"]

StringUtils.split(null)   // null
StringUtils.split("samu rai")   // ["samu", "rai"]
StringUtils.split("samu,rai", ",")   // ["samu", "rai"]
このように文字列の分割ができました!

文字列を結合する

文字列を空白や指定した文字で結合するにはjoinメソッドを使います。


StringUtils.join(null)   // null
StringUtils.join(["a", "b", "c"])   // "abc"
StringUtils.join(["a", "b", "c"], ':')   // "a:b:c"

StringUtils.join(null)   // null
StringUtils.join(["a", "b", "c"])   // "abc"
StringUtils.join(["a", "b", "c"], ':')   // "a:b:c"
このように文字列の結合ができました!

2017년 7월 20일 목요일

四捨五入・切上げ・切捨てをする

import java.math.BigDecimal;

public class RoundSample {

    public static void main(String args[]) {

        //元データ
        double val = 42.195;

        //元データをBigDecimal型にする
        BigDecimal bd = new BigDecimal(val);

        //四捨五入する
        BigDecimal bd1 = bd.setScale(0, BigDecimal.ROUND_HALF_UP);  //小数第1位
        BigDecimal bd2 = bd.setScale(1, BigDecimal.ROUND_HALF_UP);  //小数第2位

        //切り捨てする
        BigDecimal bd3 = bd.setScale(0, BigDecimal.ROUND_DOWN);  //小数第1位
        BigDecimal bd4 = bd.setScale(1, BigDecimal.ROUND_DOWN);  //小数第2位

        //切り上げする
        BigDecimal bd5 = bd.setScale(0, BigDecimal.ROUND_UP);  //小数第1位
        BigDecimal bd6 = bd.setScale(1, BigDecimal.ROUND_UP);  //小数第2位

        //画面表示
        System.out.println("四捨五入(小数第1位):" + bd1.doubleValue());
        System.out.println("四捨五入(小数第2位):" + bd2.doubleValue());

        System.out.println("切捨て(小数第1位):" + bd3.doubleValue());
        System.out.println("切捨て(小数第2位):" + bd4.doubleValue());

        System.out.println("切上げ(小数第1位):" + bd5.doubleValue());
        System.out.println("切上げ(小数第2位):" + bd6.doubleValue());

    }

}

Output
C:\>java RoundSample
四捨五入(小数第1位):42.0
四捨五入(小数第2位):42.2
切捨て(小数第1位):42.0
切捨て(小数第2位):42.1
切上げ(小数第1位):43.0
切上げ(小数第2位):42.2

丸めの種類

四捨五入や切り捨て、切り上げ含めて以下のような丸め方法が用意されています。
【丸め方法に関するBigDecimalクラスの定数】
丸め方法説明
ROUND_CEILING正の無限大に近づくように丸めるモード
(例)42.1→43.0、-42.1→-42.0
ROUND_DOWNゼロに近づくように丸めるモード
(例)42.1→42.0、-42.1→-42.0
ROUND_FLOOR負の無限大に近づくように丸めるモード
(例)42.1→42.0、-42.1→-43.0
ROUND_HALF_DOWN五捨六入する
(例)42.5→42.0、42.6→43.0、
 -42.5→-42.0、-42.6→-43.0
ROUND_HALF_EVEN末尾が偶数のほうに丸める
(例)42.4→42.0、42.5→42.0、
 43.4→43.0、43.5→44.0、
 -42.4→-42.0、-42.5→-42.0、
 -43.4→-43.0、-43.5→-44.0
ROUND_HALF_UP四捨五入する
(例)42.4→42.0、42.5→43.0、
 -42.4→-42.0、-42.5→-43.0
ROUND_UNNECESSARY丸め不要
ROUND_UP0 から離れるように丸めるモード
(例)42.1→43.0、-42.1→-43.0
例はすべて小数第1位を対象としています。

2017년 4월 17일 월요일

正規表現を使う

パターン意味
パターン文字列結果
^先頭にマッチする"^ab""abcd"
"cdab"
true
false
$末尾にマッチする"ab$""abcd"
"cdab"
false
true
.任意の1文字にマッチする"a.c""abc"
"abbc"
"ac"
true
false
false
?直前の文字が0個または1個にマッチする"^A?$"""
"A"
"AA"
"B"
true
true
false
false
*直前の文字が0個以上にマッチする"^A*$"""
"A"
"AA"
"B"
true
true
true
false
+直前の文字が1個以上にマッチする"^A+$"""
"A"
"AA"
"B"
false
true
true
false
\d半角数値(0~9)にマッチする
※ [0-9]と同じ
"\\d""0123"
"0123"
"abc"
true
false
false
\D半角数値(0~9)以外にマッチする
※ [^0-9]と同じ
"\\D""0123"
"0123"
"abc"
false
true
true
\w半角英数値(0~9、a~z、A~Z、_)にマッチする
※ [0-9a-zA-Z_]と同じ
"\\w""012_AbC"
"12Ab"
"#$%&"
true
false
false
\W半角英数値(0~9、a~z、A~Z、_)以外にマッチする
※ [^0-9a-zA-Z_]と同じ
"\\W""012_AbC"
"12Ab"
"#$%&"
false
true
true
[ ]いずれかの文字とマッチする"[ABC]""A"
"B"
"D"
true
true
false
( )1つのグループとして扱う"(ABC)""ABC"
"CBA"
true
false
{n}直前の文字にn回マッチする"^A{3}$""AA"
"AAA"
"AAAA"
false
true
false
{n,}直前の文字にn回以上マッチする"^A{3,}$""AA"
"AAA"
"AAAA"
false
true
true
{n,m}直前の文字にn回以上m回以下マッチする"^A{3,4}$""AA"
"AAA"
"AAAA"
"AAAAA"
false
true
true
false
|いずれかとマッチする"ABC|DEF""ABC"
"DEF"
"CBA"
"DE"
true
true
false
false
-範囲を指定する"[3-7]""2"
"3"
"7"
"8"
false
true
true
false
^否定([ ]の中で使用する)"[^AB]""A"
"B"
"C"
false
false
true
&&かつ"[0-9&&[^4]]""3"
"4"
"5"
true
false
true
正規表現サンプル集
//半角数値10桁にマッチ
"^\\d{10}$"

//半角数値8桁以上10桁以下にマッチ
"^\\d{8,10}$"

//1桁以上の半角英数(0~9、a~z、A~Z)にマッチ
"^[0-9a-zA-Z]+$"

//郵便番号(半角数値3桁 半角ハイフン 半角数値4桁)にマッチ
"^\\d{3}-\\d{4}$"
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegexSample {

    public static void main(String args[]) 

        //判定する文字列
        String str = "123A5";

        //判定するパターンを生成
        Pattern p = Pattern.compile("^[0-9]*$");
        Matcher m = p.matcher(str);

        //画面表示
        System.out.println(m.find());
【エスケープシーケンス記号】
記号文字
\\円記号
\'シングルクォーテーション
\"ダブルクォーテーション
\n改行コード
\tタブコード
\bバックスペース(1文字削除する)
\rキャリッジリターン(行頭に戻る)
\fフォームフィード(改ページ)