출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]

Math.random()을 쓰다가 중복이 안나오게 하고 싶어서 만들어보았는데 왠지 그냥 쉬운 방법이 또 있을듯..

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package OCt13;
 
public class memo {
 
    public static void main(String[] args) {
 
        int[] num = new int[10];
 
        for (int i = 0; i < num.length; i++) {
            num[i] = (int) (Math.random() * 10+ 1// 랜덤값 넣기
        }
 
        for (int c : num) {
            System.out.print(c + " ");
        }
        System.out.println();
 
        for (int i = 0; i < num.length; i++) {
            for (int j = i; j < num.length; j++) {
                while (true) {
                    if (i != j && num[i] == num[j]) {
                        int c = num[j];
                        num[j] = (int) (Math.random() * 10+ 1;
                        System.out.println(
                                (i + 1+ "번째숫자 " + num[i] + ", " + (j + 1+ "번째 숫자와 같아서 이 숫자를" + num[j] + "로/으로 변경");
                        System.out.println();
                        for (int a : num) {
                            System.out.print(a + " ");
                        }
                        System.out.println();
                        i = 0// i를 초기화해서 또 같은게 없는지 처음부터 끝까지 다찾음
                    } else {
                        break;
                    }
                }
            }
        }
 
        System.out.println();
        System.out.println("모두 다른 랜덤 숫자 !");
 
    }
}
 
cs

System.arraycopy (src, srcPos, dest, destPos, length)

[dest배열의 destpos번지에 src배열의 소스를 srcpos번지부터 length개 복사]

<삽입의 개념X 덮어씀O>

 

Object src : 복사하고자 하는 소스입니다. 원본

 

int srcPos  : 위의 원본 소스에서 어느 부분부터 읽어올지 위치를 정해줍니다.

                처음부터 데이터를 읽어올거면 0 을 넣어줍니다.

 

Object dest : 복사할 소스입니다. 복사하려는 대상입니다.

 

int destPos : 위의 복사본에서 자료를 받을 때, 어느 부분부터 쓸 것인지 시작 위치를 정해줍니다.

                 처음부터 데이터를 쓸 거면 0 을 넣어줍니다.

 

int length : 원본에서 복사본으로 데이터를 읽어서 쓸 데이터 길이입니다. 

               원본에서 복사본까지 얼마큼 읽어올 지 입력하는 것입니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    public static void main(String[] args) {
 
        int[] original = { 1234567891011 };
        int[] arr1 = new int[5];
        int[] arr2 = new int[6];
 
        System.arraycopy(original, 0, arr1, 0, arr1.length);
        System.arraycopy(original, arr1.length, arr2, 0, arr2.length);
 
        for (int i : arr1) {
            System.out.print(i + ", ");
        }
 
        System.out.println();
        System.out.println("====================");
 
        for (int i : arr2) {
            System.out.print(i + ", ");
        }
 
        
//        result
        
//        1, 2, 3, 4, 5, 
//        ====================
//        6, 7, 8, 9, 10, 11, 
        
        
    }
cs

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    public static void main(String[] args) {
        char[] abc = { 'A''B''C''D'};
        char[] number = { '0''1''2''3''4''5''6''7''8''9'};
        System.out.println(new String(abc));
        System.out.println(new String(number));
    
        // 배열 abc와 number를 붙여서 하나의 배열(result)로 만든다.
        char[] result = new char[abc.length+number.length];
        System.arraycopy(abc, 0, result, 0, abc.length);
        System.arraycopy(number, 0, result, abc.length, number.length);
        System.out.println(new String(result));
        
        // 배열 abc을 배열 number의 첫 번째 위치부터 배열 abc의 크기만큼 복사
        System.arraycopy(abc, 0, number, 0, abc.length);
        System.out.println(new String(number));
        
        // number의 인덱스6 위치에 3개를 복사        
        System.arraycopy(abc, 0, number, 63);
        System.out.println(new String(number)); 
        
 
         // 출력
        /*
        ABCD
        0123456789
        ABCD0123456789
        ABCD456789
        ABCD45ABC9
        */
 
    } 
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package OCt13;
 
public class ArrayBubbleSort {
 
    public static void main(String[] args) {
 
        // 정수 데이터 10개를 저장하는 배열 생성
        int[] number = new int[10];
 
        // 임의의 숫자 0~9까지의 숫자를 각 배열에 넣기
        for (int i = 0; i < number.length; i++) {
            number[i] = (int) (Math.random() * 10);
            System.out.print(number[i] + " ");
        }
 
        System.out.println();
        System.out.print("====================");
        System.out.println();
        
        for (int i = 0; i < number.length; i++) {
            boolean changed = false// 자리바뀜이 발생했는지 체크
 
            // 자리를 바꿈처리
            for (int j = 0; j < number.length - 1 - i; j++) {
                // 왼쪽 인덱스의 값과 오른쪽 인덱스의 값을 비교
                if (number[j] > number[j + 1]) {
                    int temp = number[j];
                    number[j] = number[j + 1];
                    number[j + 1= temp;
                    changed = true;
                }
 
            }
 
            for (int a : number) {
                System.out.print(a + " ");
            }
            System.out.println();
 
            if (!changed) {
                System.out.println("=======================");
                break;
            }
 
        }
 
        for (int a : number) {
            System.out.print(a + " ");
        }
 
    }
 
}
 
cs

'JAVA > basic' 카테고리의 다른 글

getter / setter  (0) 2020.10.15
접근제어 [ private / public / protected / default ]  (0) 2020.10.15
import  (0) 2020.10.15
2차원 배열 / 다차원 배열  (0) 2020.10.13
변수의 초기화 / 초기화 블럭  (0) 2020.10.08
객체지향 : class 생성  (0) 2020.10.07
생성자 / 초기화 메소드  (0) 2020.10.07
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
    int [][] score= new int[5][3];
        
        /*
         ㅁㅁㅁ
         ㅁㅁㅁ
         ㅁㅁㅁ
         ㅁㅁㅁ
         ㅁㅁㅁ
         */
    
    
    int [][] score2=new int[5][];
        score2[0]=new int[4];                
        score2[1]=new int[3];
        score2[2]=new int[2];
        score2[3]=new int[2];
        score2[4]=new int[3];
        
        /*
         ㅁㅁㅁㅁ
         ㅁㅁㅁ
         ㅁㅁ
         ㅁㅁ
         ㅁㅁㅁ 
         
         */
        
    int [][] score3 = {
            {010203},
            {111212},
            {212223},
    };
    
            /*
             01 02 03
             11 12 12
             21 22 23
             */
    
 
 
 //예
 
    int[][]arr3= {
            {1,2},
            {3,4,5},
            {6,7,8,9},
        };
    
    for(int i=0; i<arr3.length ; i++) {
        for(int j=0; j<arr3[i].length; j++) {
            System.out.print(arr3[i][j]+"\t");}
    
    System.out.println();}
 
                
cs

- for문을 이용한 역순 출력

1
2
3
4
5
6
7
8
9
10
11
12
13
 
      public static void main(String []args) {
      //변환할 문자열
      String str = "Reverse this strings";
 
      //전체길이에서 0인덱스를 포함해 i--를 이용해 반대로 읽어나갑니다.
      for (int i = str.length() -1; i>=0; i--) {
         System.out.print(str.charAt(i));
      }
   }
}
 
 
cs

 

Stringbuffer를 이용한 역순 출력

reverse()

1
2
3
4
5
6
7
8
9
10
11
   public static void main(String []args) {
      // 버퍼를 만듭니다.
      StringBuffer strBuffer = new StringBuffer(); 
      //변환할 문자열
      String str = "Reverse this strings";
      // 버퍼에 문자열을 넣고
      strBuffer.append(str);
      // 버퍼안에 reverse()를 이용해 거꾸로 출력
      System.out.print(strBuffer.reverse());
   }
}
cs

12bme.tistory.com/42

'memo' 카테고리의 다른 글

제네릭  (0) 2020.10.22
코드블럭 꾸미기  (0) 2020.10.22
매개변수란? ( ) 안에 들어가는애들인듯  (0) 2020.10.14
ArrayList 참고글  (0) 2020.10.12
public static void  (0) 2020.10.12
이클립스 단축키  (0) 2020.10.07
p s v  (0) 2020.10.07
		String str="abcd-efgh-ijkl";
		
		System.out.println(str.substring(2, 6)); //cd-e
		System.out.println(str.substring(5)); //efgh-ijkl
				

substring

ex) substring(0,5) :  0번째 부터 5개 string값 가져오기

    substring(5)  : 5번째부터 끝까지 가져오기

 

 

		String str="abcd-efgh-ijkl";
		
		System.out.println(str.lastIndexOf("-")); // 9
				

lastIndexOf

ex) lastIndexOf("a") : 마지막으로 *문자가 존재하는 위치의 인덱스 값( 중복일 경우 제일 마지막번호)

 

 

		String str="abcd-efgh-ijkl";
		
		System.out.println(str.replace("-","")); //abcdefghijkl
        

replace("a","b") : string 값 중 a를 모두 b로 변경해라

ex) replace("a","b") : 존재하는 모든 a를 b로 변경함

 

 

		String str="abcd-efgh-ijkl";
		
		System.out.println(str.indexOf("-")); // 4

indexOf("a") : string 값 중 문자의 위치 찾기  // 앞에꺼만나옴

ex)  str.indexOf("-") 

 

 

 

 

StringBuffer : StringBuffer인스턴스가 갖고 있는 문자열과 같은 내용의 String 인스턴스 생성

char charAt(int index) : 지정된 위치에 있는 문자를 알려줌

int compareTo(String str) : 문자열과 사전순서로 비교. 같으면 0, 사전순으로 이전이면 음수, 이후면 양수 반환

String concat(String str) : 문자열을 뒤에 덧붙임

boolean contains(CharSequence s) : 지정된 문자열이 포함되었는지 검사

boolean endsWith(String suffix) : 지정된 문자열로 끝나는지 검사

boolean equals(Object obj) : 매개변수로 받은 문자열과 String인스턴스의 문자열 비교. obj가 String이 아니거

나 문자열이 다르면 false 반환

boolean equalsIgnoreCase(String str) : 문자열과 String인스턴스의 문자열을 대소문자 구분없이 비교

int indexOf(int ch) : 주어진 문자가 문자열에 존재하는지 확인하여 위치 알려줌. 못 찾으면 -1을 반환

int indexOf(int ch, int pos) : 주어진 문자가 문자열에 존재하는지 지정된 위치부터 확인. 못찾으면 -1 반환

int indexOf(String str) : 주어진 문자열이 존재하는지 확인하여 위치 알려줌. 못찾으면 -1 반환

String intern() : 문자열을 상수풀에 등록. 이미 상수풀에 같은 내용의 문자열이 있을 경우 문자열의 주소값 반환

int LastIndexOf(int ch) : 지정된 문자 또는 문자코드를 문자열의 오른쪽 끝에서 부터 찾아서 위치 알려줌.

int LastIndexOf(String str) : 지정된 문자열을 인스턴스의 문자열 끝에서부터 찾아서 위치 알려줌.

int length() : 문자열의 길이 알려줌

String replace(char old, char nw) : 문자열 중의 문자를 새로운 문자로 바꾼 문자열을 반환

String replace(CharSequence old, CharSequence nw) : 문자열 중의 문자열을 새로운 문자열로 모두 바꾼 문

자열 반환

String replaceAll(String regex, String replacement) : 문자열 중에서 지정된 문자열과 일치하는 것을 새로운

문자열로 모두 변경

String replaceFirst(String regex, String replacement) : 문자열 중에서 지정된 문자열과 일치하는 것 중 첫 번

째 것만 새로운 문자열로 변경

String[] split(String regex) : 문자열을 지정된 분리자로 나누어 문자열 배열에 담아 반환

String[] split(String regex, int limit) : 문자열을 지정된 분리자로 나누어 반환하는데 문자열 전체를 지정된 수로

자름

boolean startsWith(String prefix) : 주어진 문자열로 시작하는지 검사

String substring(int begin, int end) : 주어진 시작위치부터 끝 위치범위에 포함된 문자열을 얻는다. 이 때 시작

위치의 문자는 범위에 포함되지만, 끝 위치의 문자는 포함되지 않는다

String toLowerCase() : String인스턴스에 저장되어있는 모든 문자열을 소문자로 변환하여 반환

String toString() : String인스턴스에 저장되어 있는 문자열을 반환

String toUpperCase() : String인스턴스에 저장되어있는 모든 문자열을 대문자로 변환하여 반환

String trim() : 문자열의 왼쪽 끝과 오른쪽 끝에 있는 공백을 없앤 결과를 반환. 중간에 있는 공백은 제거되지 않음

static String valueOf(boolean b) : 지정된 값을 문자열로 변환하여 반환. 참조변수의 경우 toString()을 호출한

결과를 반환함

[출처] String 클래스 생성자, 메서드|작성자 려리

 

Blog : 네이버 블로그

당신의 모든 기록을 담는 공간

blog.naver.com

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

- 결과값 : true 

 

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

- 결과값 : true 

 

equlas : 두 개의 String에 값만을 비교해서 같으면 true, 다르면 false를 반환 (대소문자 구별)

- 결과값 : true

 

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

- 결과값 : 3

 

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

- 결과값 : 7

 

length : 문자열의 길이를 반환

- 결과값 : 6

 

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

- 결과값 : A-B-C-D

 

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

- 결과값 : AB*CD

 

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

- 결과값 : B

 

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

- 결과값 : AB

 

toLowerCase, toUpperCase : 문자열에 대문자를 소문자로 또는 소문자를 대문자로 변환한다.

(예제 생략)

 

trim : 문자열에 첫 공백과 마지막 공백을 없애준다.

- 결과값 : java java java

 

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

- 결과값 : 

valueOf : 12345

valueOf : 1

valueOf : 1

 

compareTo : 두 개의 String을 앞에서 부터 순서적으로 비교.

- 문자열의 길이가 다른 경우 : 

(str1.length - str2.length)를 반환

- 문자열이 다른 경우 : 

문자열이 다른 부분이 i라면, (str1.charAt(i) - str2.charAt(i))를 반환

- 결과값 : A < B

 

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

- 결과값 : true 

 

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

(예제 생략)

 

concat : 문자열과 문자열을 결합해준다.

(예제 생략)

 

format : 서식 문자열을 이용해서 서식화된 문자열을 반환한다. (뒤에 인수는 객체 배열이어야 한다.)

- 결과값 : 123,456 ... 7

 

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

 

- 결과값 : false

 

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

- 결과값 : superman

coding-factory.tistory.com/551

blog.naver.com/alcmskfl17/221775140784

'memo' 카테고리의 다른 글

코드블럭 꾸미기  (0) 2020.10.22
매개변수란? ( ) 안에 들어가는애들인듯  (0) 2020.10.14
string stringbuffer stringbuilder  (0) 2020.10.13
public static void  (0) 2020.10.12
이클립스 단축키  (0) 2020.10.07
p s v  (0) 2020.10.07
자바 이름 규칙  (0) 2020.10.05

 

nextInt 이후레 nextLine을 사용하면 노란체크한 것처럼 개행이 된다.

 

이를 방지하기 위해 nextInt 다음줄에

nextLine을 하나 넣어주면 된다.

 

+ Recent posts