'분류 전체보기'에 해당되는 글 223건

  1. 2011.11.24 Java 에서 문자열 비교할때 equals() 말고 == (비교연산자) 로 비교하기 1
  2. 2011.11.24 Java에서 파일로 부터 데이터 읽어서 정렬(bubble sort)하기
  3. 2011.11.23 xpath 를 이용, java 에서 xml 문서 쉽게 파싱하기 5
  4. 2011.11.18 자작 훌러그인 : jQuery shortcut v0.1 (웹페이지에 단축키 기능을 넣자) 5
  5. 2011.11.18 크롬 최신버전 15.0.874.121 for Chrome Stable 다운로드 직링크(11.11.17)

Java 에서 문자열 비교할때 equals() 말고 == (비교연산자) 로 비교하기


왠지 도움이 될것 같다면 추천을 *(-_-)*


오늘 이클립스에서 작업하다 스트링 객체 다음에 . 을 찍고 뭐 쓸만한게 없나 문득 살펴봤다.

왠지 늘 쓰던거만 쓰면 재미없지 않은가! 뭐 재미진 메소드가 없나 하는 요런 마음?


고러던 와중 그동안 즌혀 관심 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); 가 훨씬 더 좋구나 라고 생각이 든다 -_-;  분명히 무슨 용도가 있기 때문에 맹근 메소드일껀데 아직까진 그 용도가 잘 파악이 안된다.


※ 비교연산자는 == 요것만 되는것 같다 < , > 요런건 안됨. 컴파일 에러남 

Java에서 파일로 부터 데이터 읽어서 정렬(bubble sort)하기


왠지 도움이 될것 같다면 추천을 *(-_-)*


학교에서 내주는 숙제용 소스코드이다.

자바 기본 라이브러리로 있는 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 파일


xpath 를 이용, java 에서 xml 문서 쉽게 파싱하기

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


자작 훌러그인 : jQuery shortcut v0.1 (웹페이지에 단축키 기능을 넣자)

종종 웹서핑을 하면서 a 를 누르면 욜리~ b를 누르면 죨리~ c를 누르면 요기능 을 해주는 단축키 기능이 있는 사이트들을 보게 된다.

요런 단축키 기능을 쉽게 추가해 주기 위한 jQuery 훌러그인을 맹글어 보았다.


다운로드

jquery.shortcut-0.1.js




설치
<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   를 입력했을때 사이트 단축키 기능이 실행되는것을 막기 위해 컨트롤키, 알트키, 쉬프트키를 누른상태에서는 단축키 기능이 작동하지 않는다. 


크롬 최신버전 15.0.874.121 for Chrome Stable 다운로드 직링크(11.11.17)

prev 1 ··· 21 22 23 24 25 26 27 ··· 45 next