Client-Side/Android2010. 2. 15. 21:01
안드로이드용 계산기 프로그램을 만들고 있습니다.
허접하지만 어느정도 구현이 되었구요.
계산기 프로그램을 만드는 중에 정규식을 쓸 일이 있었습니다.
정규식을 이용하면서 많은 공부가 되었습니다.


String s = "3+12X9-4/2";

정규식을 이용해서 String에서 숫자와 사칙연산 기호를 분리하려고 합니다.

처음에 썼던 방식은 다음과 같습니다.

String regExp = "[^0-9]";
String[] operands = s.split(regExp);

숫자가 아닌 것들을 구분자로 해서 operands에 3, 12, 9, 4, 2를 넣었습니다.


사실 사칙연산에서 쓰인 '+', '-', 'X', '/' 를 구분자로 하고 싶었는데 '-'가 문제가 되었습니다.

String regExp = "[+-X/]";

위에서 처럼 하면 '-'기호가 문제가 되어 파싱이 안되더군요.

escape 문제인가 싶어서

String regExp = "[+\-X/]";

위의 방법으로 해봤는데 역시나 안되었습니다.

한참을 고민하다가 다른 시도를 해봤는데

String regExp = "[+\\-X/]";
String[] operands = s.split(regExp);
위에 있는 정규식으로 하니 숫자만 파싱이 되더군요.

생각해보니 \\는 \로 인식이 되어서  \\-는 \-로 알아들을테니

'-'기호 문제가 해결되었습니다.

String regExp = "(-|X|/|\\+)";
String regExp = "[-X/+]";

위에서처럼 해도 마찬가지로 파싱이 되었습니다.

============================<결론>=============================
String s = "3+12X9-4/2";
String regExp = "[^0-9]";
String[] operands = s.split(regExp);

위와 같이 하면 숫자만 파싱할 수 있다.
아래와 같은 정규식을 써도 숫자만 파싱할 수 있다.
String regExp = "[+\\-X/]";
String regExp = "(-|X|/|\\+)";
String regExp = "[-X/+]";

'Client-Side > Android' 카테고리의 다른 글

java BigDecimal 사칙연산  (0) 2010.02.23
api key 확인  (0) 2010.02.19
String vs StringBuffer  (0) 2010.02.10
안드로이드 개발환경 세팅(JDK, Eclipse, Android SDK)  (0) 2010.02.06
출발!  (0) 2010.02.06
Posted by 준피
Client-Side/Android2010. 2. 10. 22:23

Java에서 String은 Object로서 넣은 값을 변경할 일이 별로 없는 경우 쓰인다.

즉, 상수로 쓰기 쉽다는 말이고 final을 붙여서 선언을 해도 괜찮다고 생각한다.

 

String c = "STRING"; 를 C에서는 이렇게 표현한다.

char *c = "STRING";

StringBuffer는 값을 변경할 수 있는 문자열을 다룰 때 쓰이는 편이 좋다.


StringBuffer c; 를 C에서는 이렇게 표현할 수 있다.
char c[128];
c[3] = 'I';

'Client-Side > Android' 카테고리의 다른 글

java BigDecimal 사칙연산  (0) 2010.02.23
api key 확인  (0) 2010.02.19
사칙연산 정규식(Regular Expression, Java)  (0) 2010.02.15
안드로이드 개발환경 세팅(JDK, Eclipse, Android SDK)  (0) 2010.02.06
출발!  (0) 2010.02.06
Posted by 준피
Client-Side/Android2010. 2. 6. 21:37

1. JDK설치하기

 

http://java.sun.com에 접속한 뒤,

 

Downloads => Java SE => JDK 6 Update 18 (본인이 설치한 버전임.)

 

제어판 => 시스템 => 고급 => 환경변수 =>시스템 변수 에 가서

 

PATH 에 C:\Program Files\Java\jdk1.6.0_18\bin를 추가하고,

 

CLASSPATH에 C:\Program Files\Java\jdk1.6.0_18\lib;.;을 추가한다.

 

.은 현재폴더를 나타낸다. 반드시 추가할 것.

 

환경변수 등록이 정상적으로 되었는지 확인하려면 커맨드창을 띄운다.

 

c:\Documents and Settings\junp>javac -version

javac 1.6.0_18                       => 정상

 

 

2. Eclipse 설치하기

 

http://www.eclipse.org/에 접속한 뒤,

 

Downloads => Eclipse Classic 3.5.1(맨밑)

 

압축을 풀고 원하는 위치로 옮긴다.

ex) D:\eclipse

 

 

3. Android SDK 설치하기

 

http://developer.android.com/sdk/index.html에 가서 OS에 맞게 다운받는다.

 

압축을 풀고 원하는 위치로 옮긴 후, SDK Setup.exe를 실행시킨다.

 

팝업창이 두개 나올텐데 다 끄면 된다.

 

1) Settings => Misc => Force https://...sources to be fetched using http://...

에 체크하고, Save & Apply를 클릭한다.

 

2) Available Packages 메뉴로 가면 버전별 SDK가 나온다.

모두 체크하고 Install Selected를 클릭한다.

(SDK 버전별로 Class 사용범위가 다르기 때문에 다 받아놓고 변경하는게 좋겠다.)

 

3) Choose Packages to Install 창이 나타나면 Accept All 선택하고,

Install Accepted 클릭한다. (설치하는데 40분 이상 필요하다)

 

설치가 완료되면 D:\android-sdk-windows\platforms에 생성이 된다.

 

4) 환경변수 PATH에 D:\android-sdk-windows\tools을 추가한다.

 

 

4. Eclipse에 ADT(Android Development Tools) Plug-in 설정

 

1) eclipse 실행 후 메뉴에서 help > install new software... 클릭한다.

 

2) install 팝업창에서 상단 오른쪽의 Add를 클릭하고, Name 에 Android Plugin 입력하고

    Location에 http://dl-ssl.google.com/android/eclipse 입력 및 OK를 클릭한다.

3) 중간에 설치 리스트 나오는데 모두 선택하고 Next > Next > Accept > Finish를 선택한

    다.

4) 재부팅 후, eclipse를 다시 실행을 하고 file > new > project를 클릭하면 안드로이드 용

   프로젝트를 만들 수 있다.

 

5)  Window > Preferences > Android > SDK Location에서 Browse 클릭하고

     D:\android-sdk-windows를 선택한 뒤 확인을 클릭한다.

 

6) 그리고 Apply를 클릭한 뒤 OK를 클릭한다.

 

 

5. Virtual Device 생성

 

1) D:\android-sdk-windows\SDK Setup.exe를 실행한다.

 

2) Virtual Devices에서 New...를 클릭하고 Name은 '2.1' Target은 'Android 2.1 - API Level 7'을 선택하고 Create AVD를 클릭한다.(Android 버전 선택은 자유이다.)

 

3) 생성된 2.1버전의 AVD를 선택하고 Start... 를 클릭한다. 에뮬레이터가 실행된다.

'Client-Side > Android' 카테고리의 다른 글

java BigDecimal 사칙연산  (0) 2010.02.23
api key 확인  (0) 2010.02.19
사칙연산 정규식(Regular Expression, Java)  (0) 2010.02.15
String vs StringBuffer  (0) 2010.02.10
출발!  (0) 2010.02.06
Posted by 준피
Client-Side/Android2010. 2. 6. 21:13

2월부터 LG전자 CTO 인턴연구원으로 있게 되었습니다.

 

맡은 일은 안드로이드 개발이구요.

 

입사 전날 몸살 나는 바람에 정신없는 주중을 보냈는데 제대로 쉬질 못하니

 

편도선이 붓고 두통에 잇몸이 부었더군요.

 

우선은 연구원으로 있으면서 많은 글을 올렸으면 하는 바램이 있네요.

 

우선 편도선이 빨리 가라 않았으면 하구요 ^^;;

'Client-Side > Android' 카테고리의 다른 글

java BigDecimal 사칙연산  (0) 2010.02.23
api key 확인  (0) 2010.02.19
사칙연산 정규식(Regular Expression, Java)  (0) 2010.02.15
String vs StringBuffer  (0) 2010.02.10
안드로이드 개발환경 세팅(JDK, Eclipse, Android SDK)  (0) 2010.02.06
Posted by 준피
Client-Side/HTML, CSS2009. 11. 17. 19:21

http://hyeonseok.com/soojung/webstandards/2009/11/12/554.html

 

신현석님의 블로그에 자세한 설명이 나와있습니다.


'Client-Side > HTML, CSS' 카테고리의 다른 글

CSS3 embossing, highlight, gradient effect  (0) 2010.06.07
HTML5 meta Tag  (0) 2010.06.07
hover를 위한 li태그와 a태그.  (0) 2009.08.20
div(block element) vs span(inline element)  (0) 2009.03.24
name=contents readOnly  (0) 2006.11.27
Posted by 준피