'분류 전체보기'에 해당되는 글 223건
- 2011.11.24 Java 에서 문자열 비교할때 equals() 말고 == (비교연산자) 로 비교하기 1
- 2011.11.24 Java에서 파일로 부터 데이터 읽어서 정렬(bubble sort)하기
- 2011.11.23 xpath 를 이용, java 에서 xml 문서 쉽게 파싱하기 5
- 2011.11.18 자작 훌러그인 : jQuery shortcut v0.1 (웹페이지에 단축키 기능을 넣자) 5
- 2011.11.18 크롬 최신버전 15.0.874.121 for Chrome Stable 다운로드 직링크(11.11.17)
Java 에서 문자열 비교할때 equals() 말고 == (비교연산자) 로 비교하기
Java 2011. 11. 24. 22:43
왠지 도움이 될것 같다면 추천을 *(-_-)*
오늘 이클립스에서 작업하다 스트링 객체 다음에 . 을 찍고 뭐 쓸만한게 없나 문득 살펴봤다.
왠지 늘 쓰던거만 쓰면 재미없지 않은가! 뭐 재미진 메소드가 없나 하는 요런 마음?
고러던 와중 그동안 즌혀 관심 1g 조차 없었던 intern() 이라는 메소드가 보였다.
이클립에서 뽓 튀어 나오는 설명을 대충 쪽 읽어보니 == 으로 스트링이 똑같은지 비교를 해주게 하는것 같았다.
뭐! 요런게 있었던 말이가! 하면서 요즘 나온 JAVA7 에 새로 추가된 메소드 인가 하고 API 를 찾아보니 JDK 1.3 부터도 있었던 메소드였다 -_-;;
아무튼 요 메소드를 쓸 일은 거의 1% 미만이지만 왠지 재미진것 같으니깐 알아는 둬야지
대충 요딴식으로 사용한다.
String a = new String("3269"); String b = new String("3269"); System.out.println(a == b); // false System.out.println(a.intern() == b); // false System.out.println(a.intern() == b.intern()); // true
음 막상 코드를 작성하고 나서 보니 "3269".equals(a); 가 훨씬 더 좋구나 라고 생각이 든다 -_-; 분명히 무슨 용도가 있기 때문에 맹근 메소드일껀데 아직까진 그 용도가 잘 파악이 안된다.
※ 비교연산자는 == 요것만 되는것 같다 < , > 요런건 안됨. 컴파일 에러남
2011/11/23 - [Java] - xpath 를 이용, java 에서 xml 문서 쉽게 파싱하기
2011/11/16 - [Java] - JAVA/JSP SQL Injection 해킹 방지를 위한 코딩
2011/10/10 - [Java] - Runtime 에 jar 파일 클래스패스에 추가 시키기 : RuntimeJarLoader
2011/09/27 - [Java] - JDK 설치시 이것저것 물어보는 대화창 없이 커맨드창에서 한번에 쭉 설치하기(Winodws)
2011/08/12 - [Java] - Java JSON 처리 라이브러리 Jackson JSON Processor #1 : Map, List 를 JSON String으로~
2011/11/16 - [Java] - JAVA/JSP SQL Injection 해킹 방지를 위한 코딩
2011/10/10 - [Java] - Runtime 에 jar 파일 클래스패스에 추가 시키기 : RuntimeJarLoader
2011/09/27 - [Java] - JDK 설치시 이것저것 물어보는 대화창 없이 커맨드창에서 한번에 쭉 설치하기(Winodws)
2011/08/12 - [Java] - Java JSON 처리 라이브러리 Jackson JSON Processor #1 : Map, List 를 JSON String으로~
'Java' 카테고리의 다른 글
Java 정규표현식으로 문자열 중에서 ip 문자열을 배열로 추출하기 (0) | 2012.05.31 |
---|---|
Java Servlet과 jQuery를 이용한 환율정보(from 네이버) 가져오기 (6) | 2012.05.24 |
Java에서 파일로 부터 데이터 읽어서 정렬(bubble sort)하기 (0) | 2011.11.24 |
xpath 를 이용, java 에서 xml 문서 쉽게 파싱하기 (5) | 2011.11.23 |
재귀함수(Recursive funtion)을 이용한 특정 폴더 아래의 모든 파일정보 읽어서 출력하기 (0) | 2011.11.16 |
Java에서 파일로 부터 데이터 읽어서 정렬(bubble sort)하기
Java 2011. 11. 24. 02:10
학교에서 내주는 숙제용 소스코드이다.
자바 기본 라이브러리로 있는 ArrayList 와 Collections.sort() 를 이용하면
임시 배열에 읽었다가 복사하고 꾸리한 버블정렬을 할 필요없이 간결한 코드를 맹글 수 있지만, 이건 숙제용이니깐~
그래도 약간 배울만한 점은 Scanner 클래스의 새로운 발견이랄까?
Scanner 는 주로 System.in 에서 사용자로 부터 뭔가를 입력받는 용도로 많이들 쓸 건데,
여기서는 File 에서 데이터를 읽는 용도로 썼다. InputStream 이나 Reader 계열로 뭔가를 읽는 코드보다 간결해서 좋은것 같다.
요거는 앞으로 Stream 에서 뭔가를 읽고 싶을때 어째 잘 써먹도록 해야 겠다.
소스코드
import java.io.File; import java.util.Scanner; public class FileSort { public static void main(String[] args) throws Exception { Scanner scan = new Scanner(new File("c:\\numbers.dat")); float[] arr = new float[100]; int cnt = 0; // numbers.dat 파일읽기 while (scan.hasNext()) { arr[cnt++] = scan.nextFloat(); } // 읽혀진 숫자 갯수만큼 배열을 생성해서 복사 float[] numbers = new float[cnt]; System.arraycopy(arr, 0, numbers, 0, cnt); // 버블정렬 bubbleSort(numbers); // 배열 출력 for (float num : numbers) { System.out.println(num); } } // 내림차순 버블 소트 public static void bubbleSort(float[] arr) { int n = arr.length; for (int pass = 1; pass < n; pass++) { for (int i = 0; i < n - pass; i++) { if (arr[i] < arr[i + 1]) { float temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; } } } } }
내림차순으로 바꾸고 싶을때는 if (arr[i] < arr[i + 1]) 요기에서 요렇게 부등호 방향만 바꿔주면 된다. if (arr[i] > arr[i + 1]) {
사용된 numbers.dat 파일
2011/11/23 - [Java] - xpath 를 이용, java 에서 xml 문서 쉽게 파싱하기
2011/11/16 - [Java 예제] - 재귀함수(Recursive funtion)을 이용한 특정 폴더 아래의 모든 파일정보 읽어서 출력하기
2011/11/16 - [Java] - JAVA/JSP SQL Injection 해킹 방지를 위한 코딩
2011/10/05 - [Java] - Jetty Scanner 를 이용한 특정 디렉토리 및 파일 변경사항(delete, change, add) 모니터링하기
2011/08/19 - [Java] - Java JSON 처리 라이브러리 Jackson JSON Processor #2 : Map, List <--> JSON String 상호변환
2011/08/12 - [Java] - Java JSON 처리 라이브러리 Jackson JSON Processor #1 : Map, List 를 JSON String으로~
2011/11/16 - [Java 예제] - 재귀함수(Recursive funtion)을 이용한 특정 폴더 아래의 모든 파일정보 읽어서 출력하기
2011/11/16 - [Java] - JAVA/JSP SQL Injection 해킹 방지를 위한 코딩
2011/10/05 - [Java] - Jetty Scanner 를 이용한 특정 디렉토리 및 파일 변경사항(delete, change, add) 모니터링하기
2011/08/19 - [Java] - Java JSON 처리 라이브러리 Jackson JSON Processor #2 : Map, List <--> JSON String 상호변환
2011/08/12 - [Java] - Java JSON 처리 라이브러리 Jackson JSON Processor #1 : Map, List 를 JSON String으로~
'Java' 카테고리의 다른 글
Java Servlet과 jQuery를 이용한 환율정보(from 네이버) 가져오기 (6) | 2012.05.24 |
---|---|
Java 에서 문자열 비교할때 equals() 말고 == (비교연산자) 로 비교하기 (1) | 2011.11.24 |
xpath 를 이용, java 에서 xml 문서 쉽게 파싱하기 (5) | 2011.11.23 |
재귀함수(Recursive funtion)을 이용한 특정 폴더 아래의 모든 파일정보 읽어서 출력하기 (0) | 2011.11.16 |
JAVA/JSP SQL Injection 해킹 방지를 위한 코딩 (5) | 2011.11.16 |
xpath 를 이용, java 에서 xml 문서 쉽게 파싱하기
Java 2011. 11. 23. 15:13
xpath 를 이용할수 있다는 걸 알기전에는 무식하게도 Document 클래스의 getElementById() 나 getElementsByTagName() 메소드를 이용해서
상당히 무식하게 난해한 코드로 xml 을 파싱하곤 했었다 -_-
어느날 문득 xpath 에 대해서 살짝 알게되고 나서 부터는 전에 쓰던 방법에 비해서는 아주 간결하고 이해하기 쉬운 코드로 xml 에서 원하는 데이터를 땡겨다 쓰는게 훨씬 수월해 졌다.
※ xpath 문법에 대해서 왠만한걸 쉽게 파악하기 위해서는 요 사이트에 가면 된다.
http://www.zvon.org/xxl/XPathTutorial/General/examples.html
요기 가서 보면 알겠지만 쉽게 쉽게 설명되있다.
xpath 만 어느정도 쓸 수 있으면 xml 에서 원하는 데이터를 땡겨오는건 매우 쉬워지니 살짝 한번 연구해 보는걸 추천한다.
xpath를 이용해서 xml 에서 원하는 데이터를 파싱하는 예제코드를 작성해 보았다.
xpath 를 사용하기 위해서 별다로 다른 라이브러리를 classpath 에 추가 안해도 된다.
예제 코드에서 사용된 xml
<root> <row> <col1 id="c1">값1</col1> <col2 id="c2" val="val2">값2</col2> </row> <row> <col1 id="c3">값3</col1> <col2 id="c4">값4</col2> </row> </root>
예제 코드는 다음과 같다.
import java.io.StringReader; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; public class XPathTest{ public static void main(String[] args) throws Exception { String xml = "<root><row><col1 id='c1'>값1</col1><col2 id='c2' val='val2'>값2</col2></row>" + "<row><col1 id='c3'>값3</col1><col2 id='c4'>값4</col2></row></root>"; // XML Document 객체 생성 InputSource is = new InputSource(new StringReader(xml)); Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is); // 인터넷 상의 XML 문서는 요렇게 생성하면 편리함. //Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder() // .parse("http://www.example.com/test.xml"); // xpath 생성 XPath xpath = XPathFactory.newInstance().newXPath(); // NodeList 가져오기 : row 아래에 있는 모든 col1 을 선택 NodeList cols = (NodeList)xpath.evaluate("//row/col1", document, XPathConstants.NODESET); for( int idx=0; idx<cols.getLength(); idx++ ){ System.out.println(cols.item(idx).getTextContent()); } // 값1 값3 이 출력됨 // id 가 c2 인 Node의 val attribute 값 가져오기 Node col2 = (Node)xpath.evaluate("//*[@id='c2']", document, XPathConstants.NODE); System.out.println(col2.getAttributes().getNamedItem("val").getTextContent()); // val2 출력 // id 가 c3 인 Node 의 value 값 가져오기 System.out.println(xpath.evaluate("//*[@id='c3']", document, XPathConstants.STRING)); // 값3 출력 } }
전에 getElementById(), getElementsByTagName() 요걸 쓰던 코드에 비하면 코드도 쉽게 읽히고 심플하기도 서울역에 그지없다.
앞으로 xml 파싱할때는 xpath 를 주로 써야겠다.
※ evalueate() 메소드 맨 끝에 들어가는 파라메터로
XPathConstants.NODESET
XPathConstants.NODE
XPathConstants.BOOLEAN
XPathConstants.NUMBER
XPathConstants.STRING
요런걸 쓸 수 있다. 변수 이름을 보면 대충 어떨때 써야 할지 알 수 있을것이라 생각한다.
요런걸 쓸 수 있다. 변수 이름을 보면 대충 어떨때 써야 할지 알 수 있을것이라 생각한다.
2011/10/05 - [Java] - Jetty Scanner 를 이용한 특정 디렉토리 및 파일 변경사항(delete, change, add) 모니터링하기
2011/10/10 - [Java] - Runtime 에 jar 파일 클래스패스에 추가 시키기 : RuntimeJarLoader
2011/11/13 - [Java] - Java Map 반복(Iteration)시키는 3가지 방법
2011/11/16 - [Java] - JAVA/JSP SQL Injection 해킹 방지를 위한 코딩
2011/11/16 - [Java 예제] - 재귀함수(Recursive funtion)을 이용한 특정 폴더 아래의 모든 파일정보 읽어서 출력하기
2011/10/10 - [Java] - Runtime 에 jar 파일 클래스패스에 추가 시키기 : RuntimeJarLoader
2011/11/13 - [Java] - Java Map 반복(Iteration)시키는 3가지 방법
2011/11/16 - [Java] - JAVA/JSP SQL Injection 해킹 방지를 위한 코딩
2011/11/16 - [Java 예제] - 재귀함수(Recursive funtion)을 이용한 특정 폴더 아래의 모든 파일정보 읽어서 출력하기
'Java' 카테고리의 다른 글
Java 에서 문자열 비교할때 equals() 말고 == (비교연산자) 로 비교하기 (1) | 2011.11.24 |
---|---|
Java에서 파일로 부터 데이터 읽어서 정렬(bubble sort)하기 (0) | 2011.11.24 |
재귀함수(Recursive funtion)을 이용한 특정 폴더 아래의 모든 파일정보 읽어서 출력하기 (0) | 2011.11.16 |
JAVA/JSP SQL Injection 해킹 방지를 위한 코딩 (5) | 2011.11.16 |
Java Map 반복(Iteration)시키는 3가지 방법 (5) | 2011.11.13 |
자작 훌러그인 : jQuery shortcut v0.1 (웹페이지에 단축키 기능을 넣자)
jQuery Plugin 2011. 11. 18. 23:26
종종 웹서핑을 하면서 a 를 누르면 욜리~ b를 누르면 죨리~ c를 누르면 요기능 을 해주는 단축키 기능이 있는 사이트들을 보게 된다.
요런 단축키 기능을 쉽게 추가해 주기 위한 jQuery 훌러그인을 맹글어 보았다.
다운로드
설치
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script> <script src="jquery.shortcut-0.1.js" type="text/javascript"></script>
사용법
<script type="text/javascript"> $.shortcut({ 65 : function(){ alert("a키 눌렀을때 처리할 기능"); // window.location.href = "/"; // 홈으로 이동 }, 66 : function(){ alert("b키 눌렀을때 처리할 기능"); // $("#keyword").focus(); // keyword 인풋박스로 포커스 이동 } }); </script>
$.shortcut() 에 추가하고 단축키 키코드값 : 키를 눌렀을때 실행할 자바스크립 함수를 쌍으로 해서 ,(콤마) 로 구분해 넣고 싶은 만큼 쪽 넣으면 된다~
키코드값 알아내기. ↓ 아래에 있는 인풋박스에 코드값을 알고 싶은 키를 입력하면 옆에 키코드값이 뽓 나타난다.
키코드 알고 싶어염 :
※ 사람들이 input, textarea 에 뭔가 입력하고 있을때 단축키 기능이 실행되 버리는 것을 막기 위해 input, textarea 에 뭔가를 입력할때는 단축키 기능이 작동하지 않는다.
※ 웹브라우져 단축키 ex) ctrl+a 를 입력했을때 사이트 단축키 기능이 실행되는것을 막기 위해 컨트롤키, 알트키, 쉬프트키를 누른상태에서는 단축키 기능이 작동하지 않는다.
2011/09/19 - [jQuery Plugin] - 자작 훌러그인 : jQuery monthPicker Plugin v0.1
2011/11/07 - [jQuery Plugin] - 자작 훌러그인 : jQuery blingHover v0.1 (링크 롤오버시 텍스트 컬러를 보드랍게 바꿔주기-_-)
2011/11/11 - [Javascript 예제] - jQuery로 테이블 tr 동적으로 추가,삭제 하기 v2
2011/11/15 - [Javascript 예제] - jQuery 로 해보는 체크박스(checkbox) 전체선택, 선택해제 예제
2011/11/18 - [Javascript 예제] - jQuery 로 메뉴 접었다~ 펼쳤다~ 구현하기
2011/11/07 - [jQuery Plugin] - 자작 훌러그인 : jQuery blingHover v0.1 (링크 롤오버시 텍스트 컬러를 보드랍게 바꿔주기-_-)
2011/11/11 - [Javascript 예제] - jQuery로 테이블 tr 동적으로 추가,삭제 하기 v2
2011/11/15 - [Javascript 예제] - jQuery 로 해보는 체크박스(checkbox) 전체선택, 선택해제 예제
2011/11/18 - [Javascript 예제] - jQuery 로 메뉴 접었다~ 펼쳤다~ 구현하기
'jQuery Plugin' 카테고리의 다른 글
Table 자동 rowspan 처리 jQuery plugin (0) | 2017.01.12 |
---|---|
jQuery를 이용한 스크롤 따라니는 배너를 쉽게 맨들기(scroll follow) (3) | 2012.05.29 |
자작 훌러그인 : jQuery blingHover v0.1 (링크 롤오버시 텍스트 컬러를 보드랍게 바꿔주기-_-) (0) | 2011.11.07 |
jQuery datepicker 팝업창 사이즈 바꾸기 (3) | 2011.11.06 |
jQuery UI datepicker z-index 때문에 datepicker 가 뽓 나타나지 않을때 해결하기 (1) | 2011.11.06 |
크롬 최신버전 15.0.874.121 for Chrome Stable 다운로드 직링크(11.11.17)
쓸만한지식 2011. 11. 18. 12:34
왠지 도움이 될것 같다면 추천을 *(-_-)*
크롬 최신버전 다운로드 직링크에요~~
http://dl.google.com/chrome/install/874.121/chrome_installer.exe
2011/11/18 - [Javascript 예제] - jQuery 로 메뉴 접었다~ 펼쳤다~ 구현하기
2011/11/15 - [Javascript 예제] - jQuery 로 해보는 체크박스(checkbox) 전체선택, 선택해제 예제
2011/11/11 - [Javascript 예제] - jQuery로 테이블 tr 동적으로 추가,삭제 하기 v2
2011/11/09 - [Javascript] - javascript Array 에 protoype으로 remove 함수 추가하기
2011/11/07 - [jQuery Plugin] - 자작 훌러그인 : jQuery blingHover v0.1 (링크 롤오버시 텍스트 컬러를 보드랍게 바꿔주기-_-)
2011/11/15 - [Javascript 예제] - jQuery 로 해보는 체크박스(checkbox) 전체선택, 선택해제 예제
2011/11/11 - [Javascript 예제] - jQuery로 테이블 tr 동적으로 추가,삭제 하기 v2
2011/11/09 - [Javascript] - javascript Array 에 protoype으로 remove 함수 추가하기
2011/11/07 - [jQuery Plugin] - 자작 훌러그인 : jQuery blingHover v0.1 (링크 롤오버시 텍스트 컬러를 보드랍게 바꿔주기-_-)
'쓸만한지식' 카테고리의 다른 글
ERWin 으로 테이블 생성 스크립트 생성하기 (5) | 2011.12.09 |
---|---|
북앤라이프 캐쉬 예스24 에서 사용하는 방법 (4) | 2011.11.29 |
크롬 최신버전 15.0.874.120 for Chrome Stable 다운로드 직링크(11.11.11) (0) | 2011.11.11 |
[팁] 윈도우7 에서 특수문자 입력을 쪼금더 편리하게~ (0) | 2011.11.07 |
옥션 바로가기 링크 (0) | 2011.11.02 |