이클립스 단축키
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 : 해당 메서드, 객체, 변수가 사용(호출)된 모든 곳을 찾는다.
2017년 11월 23일 목요일
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
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
丸めの種類
四捨五入や切り捨て、切り上げ含めて以下のような丸め方法が用意されています。
| 丸め方法 | 説明 |
|---|---|
| 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_UP | 0 から離れるように丸めるモード (例)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 フォームフィード(改ページ)
피드 구독하기:
글 (Atom)