- Calendar 에서 특정 날짜 이후 계산하기

  ex) 한달 후의 날짜나, 일주일 후의 날짜 계산


.add(int feild, int amount) 와 .roll(int feild, int amount) 두 가지가 존재한다.

.add() 로 일자를 추가하여, 해당 월이 넘어가게 되면 월도 자동 +1 이 되고,

.roll() 로 일자를 추가하여, 해당 월이 넘어가도 월에는 데이타 변화가 없고 일자만 변경된다. 

 ( 다른필드에 영향을 안줌. 하지만, 1월 31일일때 Month + 1 하면 Date 날짜가 28일로 변경은 된다. 밑으로는 영향 줌? )

startWith: 문자열이 지정한 문자로 시작하는지 판단 같으면 true반환 아니면 false를 반환한다.(대소문자구별)

1
2
3
String str = "apple";
boolean startsWith = str.startsWith("a");
System.out.println("startsWith: " + startsWith);

결과값:true


endWith:문자열 마지막에 지정한 문자가 있는지를 판단후 있으면 true, 없으면 false를 반환한다.(대소문자구별)

1
2
3
String str = "test";
boolean endsWith = str.endsWith("t");
System.out.println("endsWith: " + endsWith);

결과값:true


equals:두개의 String에 값만을 비교해서 같으면 true, 다르면 false를 반환한다.(대소비교)

1
2
3
4
String str1 = "java";
String str2 = "java";
boolean equals = str1.equals(str2);
System.out.println("equals: " + equals);

결과값:true


indexOf:지정한 문자가 문자열에 몇번째에 있는지를 반환한다.

1
2
3
String str = "abcdef";
int indexOf = str.indexOf("d");
System.out.println("indexOf: " + indexOf);

결과값:3


lastindexOf:문자열에 지정한 문자가 마지막몇번째에 있는 int를 반환한다.

1
2
3
String str = "AdnroidApp";
int lastIndexOf = str.lastIndexOf("A");
System.out.println("lastIndexOf:" + lastIndexOf);

결과값:7


length:문자열의 길이를 반환한다.

1
2
3
String str = "abcdef";
int length = str.length();
System.out.println("length: " + length);

결과값:6


replace:문자열에 지정한 문자" "가 있으면 새로 지정한 문자" "로 바꿔서 출력한다.

1
2
3
String str = "A*B*C*D";
String replace = str.replace("*", "-");
System.out.println("replace: " + replace);

결과값: A-B-C-D



replaceAll:정규표현식을 지정한 문자로 바꿔서 출력한다.

1
2
3
String str = "AB CD";
String replaceAll = str.replaceAll("\\p{Space}", "*");
System.out.println("replaceAll: " + replaceAll);

결과값: AB*CD


split:지정한 문자로 문자열을 나눌수 있다.(배열로 반환)

1
2
3
String str = "A:B:C:D:abcd";
String[] split = str.split(":");
System.out.println("split: " + split[1]);

결과값:B


substring:문자열에 지정한 범위에 속하는 문자열을 반환한다.(시작범위에 값은 포함하고, 끝나는 범위에 값은 포함하지않는다.)

1
2
3
String str = "ABCDEF";
String substring = str.substring(0, 2);
System.out.println("substring: " + substring);

결과값:AB


toLowerCase: 문자열에 대문자를 소문자로 변환한다.

1
2
3
String str = "abcDEF";
String toLowerCase = str.toLowerCase();
System.out.println("toLowerCase: " + toLowerCase);

결과값:abcdef


toUpperCase:문자열에 소문자를 대문자로 변환한다.

1
2
3
String str = "abcDEF";
String toUppercase = str.toUpperCase();
System.out.println("toUppercase: " + toUppercase);

결과값:ABCDEF


toString:문자열을 그대로 반환해준다.

1
2
3
String str = "1234";
String toString = str.toString();
System.out.println("toString: " + toString);

결과값:1234


trim:문자열에 공백을 없에준다.

1
2
3
4
String s = "     java java java     ";
String v;
v = s.trim();
System.out.println("trim:" + v);

결과값:java java java


valueOf:지정한 개체의 원시 값을 반환

1
2
3
4
5
6
int i = 12345;
long l = 1L;
char c = '1';
System.out.println("valueOf: " + String.valueOf (i));
System.out.println("valueOf: " + String.valueOf (l));
System.out.println("valueOf: " + String.valueOf (c));

결과값:

valueOf: 12345

valueOf: 1

valueOf: 1


compareTo:두개의 String를 앞에서부터 순사적으로 비교하다가 틀린부분이 있으면 비교하는 String에 캐릭터값을 반환한다.(대소문자를 구별)

1
2
3
4
5
6
7
8
9
10
String str1 = "A";
String str2 = "B";
int compareTo = str1.compareTo(str2);<p></p>
if(compareTo > 0){<p></p>
       System.out.println(str1 + " > " +str2);
} else if (compareTo == 0){
       System.out.println(str1 + " = " +str2);
} else{
       System.out.println(str1 + " < " +str2);
}

결과값:

A < B


contains:두개의 String을 비교해서 비교대상 String을 포함하고 있으면true, 다르면 false를 반환한다.

1
2
3
4
String str1 = "abcd";
String str2 = "c";
boolean contains = str1.contains(str2);
System.out.println("contains: " + contains);

결과값:true


charAt:지정한 index번째에 문자를 반환한다.

1
2
3
String str = "charAt";
char charAt = str.charAt(2);
System.out.println("charAt: " + charAt);

결과값:a


concat:문자와 문자를 결합해준다.

1
2
3
4
String str1 = "Han";
String str2 = "SeeJin";
String concat = str1.concat(str2);
System.out.println("concat: " + concat);

결과값:HanSeeJin


format:서식문자열을 이용해서 서식화된 문자열을 반환한다.

1
2
3
int i = 123456789;
String str = String.format("%,d", i);
System.out.println("format: " + str);

결과값:123,456,789


matches:지정한 정규 표현과 일치 할때 true를 반환한다.

1
2
3
4
5
int i = 123456;
String str1 = String.format("%,d", i);
String str2 = "123456";
boolean matches = str1.matches(str2);
System.out.println("matches: " + matches);

결과값:false


replaceFirst:문자열에 지정한 문자" "가 있으면 첫번째만 새로지정한 문자" "로 바꿔서 출력한다.

1
2
3
String str = "Aman";
String replaceFirst = str.replaceFirst("A", "super");
System.out.println("replaceFirst: " + replaceFirst);

결과값:superman

 

- 출처 : sks3297.tistory.com/entry/자바-문자열-함수

   (댓글란이 없어서 말씀을 못 드리고 퍼왓네요. 문제시 자삭하겟습니다.)

'공부 > JAVA' 카테고리의 다른 글

JAVA_[ SimpleDateFormat ]  (0) 2014.08.28
JAVA_[ Calendar ]  (1) 2014.08.28
JAVA_[ Iterator & Enumerator ]  (0) 2014.08.21
JAVA_[ Vector, ArrayList, Object[], HashMap, TreeMap 선택방법 ]  (0) 2014.08.20
JAVA_[ 예외처리(Exception Handling ]  (0) 2014.08.20

- $.param() 와 $(fromName).serialize() 모두 요청 매개변수 문자열로 만들어주는 메서드이다.


차이점은 

$.param() 은 파라미터(?) 가 JavaScript Object 타입이어야 하고, 

serialize() 는 입력양식의 Form 에서 바로 문자열로 만들 수 있다.


- $.param() 예제>

    <script src="http://code.jquery.com/jquery-1.7.js"></script>

    <script>

        $(document).ready(function () {

            var person= {

                name: 'Daniel',

                age: '29',

                address: 'Seoul'

            }

            alert($.param(person));

        });

    </script>

출력 : name=Daniel&age=29&address=Seoul



- serialize() 예제>

    <script src="http://code.jquery.com/jquery-1.7.js"></script>

    <script>

        $(document).ready(function () {


            $("#dataForm").submit(function (event) {

                alert($(this).serialize());

            });

        });

    </script>

</head>

<body>

    <form id="dataForm">

        <table>

            <tr>

                <td><label for="name">Name</label></td>

                <td><input type="text" name="name" id="name" /></td>

            </tr>

            <tr>

                <td><label for="age">Age</label></td>

                <td><input type="text" name="age" id="age" /></td>

            </tr>

            <tr>

                <td><label for="address">Address</label></td>

                <td><input type="text" name="address" id="address" /></td>

            </tr>

        </table>

        <input type="submit" value="Get Ajax String" />

    </form>

</body>

출력 : name=Daniel&age=29&address=Seoul


'공부 > JQuery' 카테고리의 다른 글

JQuery_[상태 필터 선택자]  (0) 2015.01.29
JQuery_[위치기반 필터 선택자]  (0) 2015.01.29
JQuery_[ Scroll 이벤트 ]  (0) 2014.08.25
JQuery_[ $.extend() ]  (0) 2014.08.25
JQuery_[ jQuery 속성선택자 ]  (0) 2014.08.22

- Ajax는 자바스크립트 처럼 특정한 프로그래밍 언어를 지칭하는 것이 아니다.

또한, JQuery 와 같은 특정한 프레임웤를 지칭하는 것도 아니다. Ajax 는 프로그램을 구현하는 방식을 뜻 한다.

JavaScript 와 XML 로 비동기 통신을 한다.

간단히 말하면, 서버측 Scripts 와 통신하기 위한 XMLHttpREquest 객체를 사용하는 것을 말한다.

서버측으로, 다양한 형식(JSON, XML, HTML 및 일반 텍스트 형식 등)의 정보를 주고 받을 수 있다.

Ajax 의 강력한 특징은 페이지 전체를 리플래쉬 하지 않고서도 수행 되는 '비동기성' 이다.

- 사이트에서 스크롤이 문서 끝까지 내려가면 자동으로 포스트를 추가하여 스크롤을 늘리는 이벤트(무한스크롤)

우선, 사용자가 마우스 스크롤을 움직으면 무조건 Scroll() 이벤트가 발생한다.

무한 스크롤을 만들려면 화면 끝까지 스크롤이 도달했다는 사실을 인지하여야 한다.

Document 객체의 height 속성은 문서 전체의 높이를 의미한다.

스크롤이 페이지에서 끝까지 내려가면, window 객체의 ScrollTop 속성과 height 속성 값을 합한 것이

Document 객체의 높이와 같아진다. 이때 포스트를 추가하는 방식이다.

예 사이트) http://mixsh.com

 

ex>
    <script src="http://code.jquery.com/jquery-1.7.js"></script>
    <script>
        $(document).ready(function () {
            $(window).scroll(function () {
                var scrollHeight = $(window).scrollTop() + $(window).height();
                var documentHeight = $(window).height();

                if (scrollHeight >= documentHeight) {
                    for (var i = 0; i < 10; i++) {
                        $('body').append('<h1>Scroll Add</h1>');    // 임의로 그냥 텍스트 추가
                    }
                }
            });
        });
    </script>

 

우선 페이지에 스크롤 표시를 위해  <body> 태그에 데이타를 입력해서 스크롤을 이용할수 있도록 세팅을 한 후에 실험해야 한다.

'공부 > JQuery' 카테고리의 다른 글

JQuery_[위치기반 필터 선택자]  (0) 2015.01.29
JQuery_[ $.param() / serialize() ]  (0) 2014.08.26
JQuery_[ $.extend() ]  (0) 2014.08.25
JQuery_[ jQuery 속성선택자 ]  (0) 2014.08.22
JQuery_[ li 리스트 항목 순서 변경하기 ]  (0) 2014.04.16

- JQuery $.extend() 메서드는 객체확장시 사용된다.


    <script src="http://code.jquery.com/jquery-1.7.js"></script>
    <script>
        $(document).ready(function () {
            var object = {};

            object.name = 'Daniel';
            object.gender = 'Male';
            object.part = 'Second Guitar';
        });
    </script>

 

이렇게 추가를 하게 될 떄, 추가 속성의 수가 적으면 문제가 되지 않지만, 속성의 수가 많으면 아주 불편해진다.

이럴때 사용.

또한, 첫번째 매개변수로 입력한 객체에 추가하여 합칠 때도 사용된다.

    <script src="http://code.jquery.com/jquery-1.7.js"></script>
    <script>
        $(document).ready(function () {

            var object2 = { name: 'Daniel' };

            $.extend(object2, {
                gender: 'Male',
                part: 'seCond Guitar'
            });

            var outPut = '';
            $.each(object2, function (key, item) {
                outPut += key + ': ' + item + '\n';
            });
            alert(outPut);
        });
    </script>

 

 

 

- jQuery 속성 선택자


 선택자 형태

 설명 

 요소[속성] 

 특정 속성을 가지고 있는 문서 객체를 선택 

 요소[속성=값]

 속성 안의 값이 특정 값과 같은 문서 객체를 선택

 요소[속성~=값]

 속성 안의 값이 특정 값을 단어로써 포함하는 문서 객체를 선택

 요소[속성^=값]

 속성 안의 값이 특정 값으로 시작하는 문서 객체를 선택 

 요소[속성$=값]

 속성 안의 값이 특정 값으로 끝나는 문서 객체를 선택

 요소[속성*=값]

 속성 안의 값이 특정 값을 포함하는 문서 객체를 선

ex)

    <script src="http://code.jquery.com/jquery-1.7.js"></script>

    <script>

        $(function () {

            $("input[type=text]").val('Hello Jquery');

        });

    </script>

'공부 > JQuery' 카테고리의 다른 글

JQuery_[ Scroll 이벤트 ]  (0) 2014.08.25
JQuery_[ $.extend() ]  (0) 2014.08.25
JQuery_[ li 리스트 항목 순서 변경하기 ]  (0) 2014.04.16
JQuery_[ 'undefined' 값 체크하기 ]  (0) 2013.11.05
JQuery_[ SelectBox 활용 값제어 ]  (0) 2013.07.16

- 보통 자바스크립트에서 자료형을 검사할때 typeOf 를 사용한다.
   하지만, 생성자를 이용해서 숫자 객체를 생성하면 문제가 발생한다.


    <script>

        // 변수 선언

        var numberType = 273;               // 기본자료형

        var objectType = new Number(273);   // 객체형


        // 출력

        var outPut = '';

        outPut += 'numberType : ' + typeof (numberType) + '\n';

        outPut += 'objectType : ' + typeof(objectType);

        alert(outPut);

    </script>

- 결과


두 변수 모두 숫자이기는 하나 objectType 는 객체이므로 typeOf 으로 자료형을 검사하면 Object 로 나온다.

만약, typeOf 로 값을 숫자여부를 판별하여, 분기처리를 하게되면 정상적인 결과를 얻을 수 없다.

예를 들어,

if( tyoeOf (objetType) == 'number' ) {} 이렇게 해서 무언가 하고자 할 떄 정상적으로 처리할 수가 없게된다.


이러한 두 대상을 같은 자료형으로 취급하여 처리하고 싶을때는 constructor() 메서드를 사용해애한다.

( 기본자료형도 속성이나, 메서드를 사용하면 자동으로 객체로 변환된다. 그래서 Object 타입과 같은 속성, 메서드존재 )


EX) 같은 자료형으로 분류하기

    <script>

        // 변수 선언

        var numberType = 273;               // 기본자료형

        var objectType = new Number(273);   // 객체형


        // 출력

        var outPut = '';

        // Constructor 사용

        if (numberType.constructor == Number) {

            outPut += 'numberType : 숫자네요';

        }

        if (objectType.constructor == Number) {

            outPut += 'numberType : 숫자네요';

        }

alert(outPut);

    </script>

요렇게 '- ' 근데 하다보니 isNaN 써서 Flase 떨어지면 숫자 이걸로 하면 어떻게 될지 궁금해짐



        if (!isNaN(numberType)) {

            alert('numberType는 숫자입니다.');

        }

        if (!isNaN(objectType)) {

            alert('objectType는 숫자입니다.');

        }

이렇게 하니... 둘다 숫자라고 나옴.. 그럼 구지 constructor 쓰는 이유는 또 모지..? 어렵다 '- '

- 프로토타입

: 자바스크립트에서(모 JAVA도 같지만) 생성자를 통해서 객체를 생성할때

속성은 각기 다르지만, 속성값으로 실행되는 메서드(Method)는 처리구문은 같다.

만약 다루는 객체의 수가 1,000개의 객체라면 생성자 안에 있는 메서드도 1,000번을 생성해야 한다.

메모리를 쓸데없이 잡아먹는 굉장히 비효율적인 일이다.

EX)

    <script>

        // 생성자

        var Student = function (name, korean, math, english, science) {

            // 속성

            this.이름 = name;

            this.국어 = korean;

            this.수학 = math;

            this.영어 = english;

            this.과학 = science;

            // 메서드

            this.getSum = function () { return this.국어 + this.수학 + this.영어 + this.과학; };

            this.getAvg = function () { return this.getSum() / 4; };

            this.toString = function () { return this.이름 + '\t' + this.getSum() + '\t' + this.getAvg(); };

        };

</script>


getSum(), getAvg(), toString() 는 같은일을 하는 메서드인데 객체생성마다 발생하는문제를 해결하기위해

'프로토타입(Prototype)' 이라는 공간에 넣고 공통으로 사용하는 것이다.


EX)

        // 생성자

        var Student = function (name, korean, math, english, science) {

            // 속성

            this.이름 = name;

            this.국어 = korean;

            this.수학 = math;

            this.영어 = english;

            this.과학 = science;

        };

        Student.prototype.getSum = function () {

            return this.국어 + this.수학 + this.영어 + this.과학;

        };

        Student.prototype.getAvg = function () {

            return this.getSum() / 4;

        };

        Student.prototype.toString = function () {

            return this.이름 + '\t' + this.getSum() + '\t' + this.getAvg();

        };


        var student = new Student('최우철', 90, 90, 90, 90);

        alert(student.getSum());

        alert(student.getAvg());

        alert(student.toString());

    </script>


* 프로토타입은 우리가 만드는 것이 아니다. 함수 안에 자동으로 만들어지는 배열 arguments 와 마찬가지이다.

그냥 가져다 쓰면되는거...같다(?)



    <script>

        var student = {

            이름: '아무개',

            국어: 92,

            수학: 89,

            영어: 96,

            과학: 98

        };


        // in 키워드(해당 Key 가 있는지 확인 return Boolean)

        var outPut = '';

        outPut += 'Student 에 \'이름\' Key 존재 : ' + ('이름' in student) + '\n';

        outPut += 'Student 에 \'성별\' Key 존재 : ' + ('성별' in student);

        alert(outPut);


        // with 키워드

        var outPut2 = '';

        with (student) {

            outPut2 += '이름 : ' + 이름 + '\n';

            outPut2 += '국어 : ' + 국어 + '\n';

            outPut2 += '수학 : ' + 수학 + '\n';

            outPut2 += '영어 : ' + 영어 + '\n';

            outPut2 += '과학 : ' + 과학 + '\n';

            outPut2 += '총점 : ' + (국어 + 수학 + 영어 + 과학);

        }

        alert(outPut2); 

    </script>


- in 키워드는 객체에 해당 Key 의 존재여부를 Boolean 값으로 return

- with 키워드는 객체['key'] 의 중복코드를 줄이기 위해

   with(Student){} 내에서는 객체명 없이 key 값만으로 데이타를 조작할수 있다.



+ Recent posts