JAVA/자바 2019. 6. 23. 09:53

Arrays.copyOfRange() 는 특정 배열의 원하는 범위만큼 복사하여 새로운 배열을 만드는 메소드함수입니다.

 

새로운 배열 = Arrays.copyOfRange(원본 배열,복사하려는 시작 요소의 인덱스,복사하려는 마지막 요소의 인덱스의 바로 다음 인덱스)

 

[예제 결과물]

 

[예제 코드]

import java.util.*;

public class Solution {
private static int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

public static void main(String[] args) {
int[] arr1 = Arrays.copyOfRange(arr, 2,6);

System.out.print("arr의 요소 중 인덱스2에서 5까지  불러오기 :  ");
for(int i=0;i<arr1.length;i++) {
System.out.print(arr1[i]+" ");
}
}
}

posted by 스노(Snow)
:
JAVA/자바 2019. 6. 23. 09:40

Arrays.copyOf()는 특정 배열의 원하는 길이만큼 새로운 배열로 복사하는 메소드 함수입니다.

 

새로운 배열 = Arrays.copyof(원본 배열, 원본 배열에서 복사하고 싶은 요소들의 길이); 식으로 사용됩니다.

 

[예제 결과물]

[예제 코드]

import java.util.*;

public class Solution {
private static int[] arr = {1, 2, 3, 4, 5};

public static void main(String[] args) {
int[] arr1 = Arrays.copyOf(arr, 2);
int[] arr2 = Arrays.copyOf(arr, 7);

System.out.print("arr의 요소중 2개 불러오기 :  ");
for(int i=0;i<arr1.length;i++) {
System.out.print(arr1[i]+" ");
}
System.out.println();
System.out.print("arr의 요소중 7개 불러오기 :  ");
for(int i=0;i<arr2.length;i++) {
System.out.print(arr2[i]+" ");
}
}
}

posted by 스노(Snow)
:
JAVA/자바 2019. 6. 20. 23:38

Arrays.sort() 함수를 사용하여 배열을 정렬해보았습니다.

1. Arrays.sort(배열명)을 하면 오름차순으로 정렬됩니다.

2. Arrays.sort(배열명,i,j)을 하면 i부터 j까지 오름차순으로 정렬합니다.

3. Arrays.sort()에서는 내림차순을 지원하지 않지만 for문을 이용하여 오름차순을 뒤집어서 내림차순으로 만들 수 있습니다.

[원본배열]

{4,2,1,3,5}

 

[결과]

 

[코드]

import java.util.Arrays;

public class C {
public static void main(String[] args) {

//오름차순 정렬
int[] arr = {4,2,1,3,5};
Arrays.sort(arr);
System.out.println("오름차순 정렬");
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+"\t");
}
System.out.println();
System.out.println();

//0번째를 제외하고 오름차순 정렬
int[] arr2 = {4,2,1,3,5};
Arrays.sort(arr2,1,arr2.length);
System.out.println("0번째를 제외하고 오름차순 정렬");
for(int i=0;i<arr2.length;i++) {
System.out.print(arr2[i]+"\t");
}
System.out.println();
System.out.println();

//내림차순 정렬
int[] arr3 = {4,2,1,3,5};
Arrays.sort(arr3);
System.out.println("내림차순 정렬");
for(int i=(arr3.length)-1;i>=0;i--) {
System.out.print(arr3[i]+"\t");
}
}
}

'JAVA > 자바' 카테고리의 다른 글

[JAVA] 특정범위 배열복사 Arrays.copyOfRange()  (0) 2019.06.23
[JAVA] 배열복사 Arrays.copyOf() 함수  (0) 2019.06.23
객체 지향 프로그래밍  (0) 2019.06.20
[JAVA]대소문자 변환  (0) 2019.06.19
[JAVA] 이클립스 설치  (0) 2019.06.10
posted by 스노(Snow)
:
JAVA/자바 2019. 6. 20. 00:22

[객체 지향 프로그래밍의 정의]

소프트웨어를 개발할 때, 여러 객체들로 나눠 하나하나 조립해서 완성된 프로그램을 만드는 기법을 객체 지향 프로그래밍이라고 합니다.

 

[객체의 정의]

객체란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말합니다. 예를 들자면 물리적으로 존재하는 모니터, 필통, 연필, 사람과 추상적인 강의, 수업 등이 모두 객체가 될 수 있습니다. 객체는 속성과 동작으로 구성되어 있습니다. 사람이라는 객체를 예로 들자면, 이름이나 성별 등이 속성이고 달린다, 잔다 등이 동작입니다. 자바에서는 속성과 동작들을 각각 필드와 메소드라고 부릅니다.

 

[객체 간의 관계]

관계의 종류에는 집합 관계, 사용 관계, 상속 관계가 있습니다.

집합 관계 : 부품과 완성품의 관계

ex) 자동차 - 엔진,타이어 등

사용 관계 : 객체 간의 상호작용

ex) 사람 - 자동차

상속 관계 : 상위 객체를 기반으로 하위 객체를 생성하는 관계

ex) 기계(상위) - 자동차(하위)

 

[객체 지향 프로그래밍의 장점]

객체 지향 프로그래밍은 절차 지향 프로그래밍보다 학습 난이도가 높지만, 협업이 필요한 대형 프로젝트에 적합하며 유지보수가 용이합니다.

posted by 스노(Snow)
:
JAVA/자바 2019. 6. 19. 23:35

대문자로 변환하는 함수 : toUpperCase()

소문자로 변환하는 함수 : toLowerCase()

[결과]

[코드]

public class B {
public static void main(String[] args) {
String s = "ABcdEFghiJKlMnOpQRstuVwXYz";
String s1 = s.toUpperCase(); //모두 대문자로 바꾸기
String s2 = s.toLowerCase(); //모두 소문자로 바꾸기

System.out.println("원본 자료 \t : "+s);
System.out.println("대문자로 변환 : "+ s1);
System.out.println("소문자로 변환 : "+ s2);
}
}

posted by 스노(Snow)
:
JAVA/자바 예제 2019. 6. 19. 23:16

1부터 45까지의 값을 7개 비복원 추출합니다. 

 

[결과]

[코드]

package lotto;

/*<<로또 정보>>
 * 1부터 45까지 7개의 값을 비복원 추출을 한다.
 * 마지막 값은 보너스를 준다.
 * 순서가 있다.
 * */

public class Lotto {
private int[] num;

public Lotto() {
num = new int[7];
}

public int getNum(int index) {
return num[index];
}


public void setNum(int index, int data) {
num[index] = data;
}

public int length() {
return num.length;
}

public static void main(String[] args) {
Lotto l = new Lotto();
for (int i=0;i<l.length();i++) {
l.setNum(i, (int)(Math.random()*45)+1); //무작위의 1-45 값 반환
for (int j=0;j<i;j++) {
if (l.getNum(j)!=l.getNum(i)) { 
} else {i--;} // 앞쪽에 중복된 값이 있으면 다시 실행 /중복제거
}

}
for (int i=0;i<(l.length())-1;i++) {
System.out.print(l.getNum(i)+ " "); // 0번부터 5번까지 출력
}
System.out.print("+ "+ l.getNum(6));  // 보너스 번호 출력

} //end main
}//end class

posted by 스노(Snow)
:
JAVA/자바 예제 2019. 6. 18. 21:38

별로 원하는 사이즈로 사각형,계단,피라미드,다이아몬드 모양을 만드는 코드를 만들어 보았다.

[모양종류]

 

[코드]

import java.util.Scanner;

public class A {

 static void star(char ch) {
Scanner sc = new Scanner (System.in);
int num = sc.nextInt();
int x,y;
switch(num){
case 1 : //사각형 모
Sytem.ut.println("가로 길이");
 x = sc.nextInt();
System.out.println("세로 길이");
 y = sc.nextInt();
for (int i=1;i<=(x*y);i++) {
System.out.print(ch);
if(i%x==0) {System.out.println();}
}
break;
case 2 : //계단모양
System.out.println("계단수");
 x = sc.nextInt();
 for (int i=1; i<=x; i++) {
 for (int j=1; j<=i;j++) {
System.out.print(ch);
}System.out.println();
 }
 break;
case 3 : //역계단모양
System.out.println("계단수");
x = sc.nextInt();
for (int i=1; i<=x; i++) {
for (int j=i; j<=x;j++) {
System.out.print(ch);
}System.out.println();
for (int j=1; j<=i;j++) {
System.out.print(" ");
}
}
break;
case 4 : //피라미드모양
System.out.println("높이");
x = sc.nextInt();
for (int i=1; i<=x; i++) {
for (int j=x; j>i;j--) {
System.out.print(" ");
}
for (int j=1;j<=(2*i-1);j++) {
System.out.print(ch);
}
System.out.println();
}
break;
case 5 : //다이아몬드 모양
System.out.println("다이아몬드 크기");
x = sc.nextInt();
for (int i=1; i<=x; i++) {
for (int j=x; j>i;j--) {
System.out.print(" ");
}
for (int j=1;j<=(2*i-1);j++) {
System.out.print(ch);
}
System.out.println();
}
for (int i=1; i<=x; i++) {
for (int j=1; j<=i;j++) {
System.out.print(" ");
}
for (int j=x; j>=(2*i-2);j--) {
System.out.print(ch);
}System.out.println();

} case 5 : //5번 다이아몬드 모양
System.out.println("다이아몬드 크기");
x = sc.nextInt();
for (int i=1; i<=x; i++) {
for (int j=x; j>i;j--) {
System.out.print(" ");
}
for (int j=1;j<=(2*i-1);j++) {
System.out.print(ch);
}
System.out.println();
}
for (int i=1; i<=x; i++) {
for (int j=1; j<=i;j++) {
System.out.print(" ");
}
for (int j=x; j>=(2*i)-(x-2);j--) {
System.out.print(ch);
}System.out.println();

}break;
default:
System.out.println("에러");
break;
}//end switch
}

public static void main(String[] args) {
System.out.println("1.사각형\t 2.계단\t 3.뒤집힌 계단");
System.out.println("4.피라미드\t 5.다이아몬드");
star('*');
} //end main
}//end class A

posted by 스노(Snow)
:
JAVA/자바 예제 2019. 6. 11. 21:41

[for 문]

for문은 주어진 횟수만큼 실행문을 반복 실행할 때 적합한 반복 제어문입니다.

for문은 또다른 for문을 내포할 수 있는데, 이것을 중첩된 for문이라고 합니다.

이 경우에는 바깥쪽 for문이 한 번 실행될때마다 내부의 for문은 지정된 횟수만큼 반복해서 돌다가 다시 바깥쪽 for문으로 돌아가게 됩니다.

 

[결과물]

 

[코드]

/* 구구단 출력하기
 * 2*1 에서 9*9 까지 값을 출력한다.
 * \t 간격 정리
 */

public class ForMulti {
public static void main(String[] args) {
for (int x=2; x<=9; x++) {
System.out.print(x + "단\t\t");
} //몇단인지 확인
System.out.println();

for (int m=1; m<=9; m++) {
   for (int n=2; n<=9; n++) {
    System.out.print(n + " x " + m + " = " + (n*m) + '\t'); // 한줄씩 값 출력
   }
   System.out.println(""); // 줄변경
}
}
}

posted by 스노(Snow)
: