Java2011. 8. 28. 14:43
정규식 안에는 "\"하나만 쓸수 없기 때문에 "\"를 쓸경우 "\\" 이렇게 앞에 "\"를 하나더 붙여주어야 한다.

간단한 정규식 적용방법

String 의 replaceAll메소드를 통하여 일괄적으로 정규식을 이용하여 변환
ex)  String str = "prev.left + 3.14cm + 10mm + 30+ 1in"; 
 str.replaceAll("[0-9]?+.?[0-9]+cm", "sdf");

결과: prev.left + sdf + 10mm + 30+ 1in


해당 정규식 문자를 포함하여 원하는 형식으로 변환하여야 하는경우
ex) String str = "prev.left + 3.14cm + 10mm + 30+ 1in"; 
 Pattern pattern = Pattern.compile("[0-9]*[.]?[0-9]+cm|[0-9]*[.]?[0-9]+mm|[0-9]*[.]?[0-9]+in");  
 Matcher matcher = pattern.matcher(str);
  StringBuffer sb = new StringBuffer();
  while(matcher.find()){
   System.out.println(matcher.group());
   matcher.appendReplacement(sb, "#"+matcher.group().trim()+"#");
  }
  matcher.appendTail(sb);
  System.out.println(sb.toString());

결과: prev.left + #3.14cm# + #10mm# + 30+ #1in#

너무 간단하게 소스 예제만 정리했습니다... 정규식 대한 자세한 내용은 아래 사이트를 참고하세요~
http://blog.daum.net/question0921/419
http://iamnotokay.tistory.com/105
Posted by 위푸
Android2011. 6. 7. 09:35
Android에서 View의 크기를 알아오고 싶을때 일반적으로

 view.getWidth();
 view.getHeight();
위의 api를 써서 원하는 view의 크기를 얻어 옵니다.
위의 방법은 View가 onDraw를 통하여 화면에 그려 졌을 경우에 크기를 얻을 수 있습니다. 만약 그전에 위의 api를 호출하게 된다면 0값을 얻어오게 됩니다.

만약 onDraw전에 View에 크기를 알고 싶은 경우에는
view.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED); 
view.getMeasuredWidth();
 view.getMeasuredHeight();
위의 api를 사용하면 됩니다.
여기서 중요한 것은 view.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED) 메소드 인데 이 메소드를 통하여 view의 부모에게 크기를 위임하여 알아오게 해줍니다. 위 메소드의 파라미터로 넘겨지는 MeasureSpec은

MeasureSpec.AT_MOST : wrap_content 에 매핑되며 뷰 내부의 크기에 따라 크기가 달라진다.
MeasureSpec.EXACTLY : fill_parent, match_parent 로 외부에서 미리 크기가 지정되었다.
MeasureSpec.UNSPECIFIED : Mode 가 설정되지 않았을 경우. 소스상에서 직접 넣었을 때 주로 불립니다.

위와 같은 설정을 지원해줌으로 원하는 설정값을 넘겨주시면 됩니다.

도움이 되셨으면 좋겠네요~ ^^
Posted by 위푸