난수(Math class)

double a=Math.random(); //0.xxxx~0.9xxxx
			System.out.println(a);
  • double형이며 0이상 1미만의 난수를 생성
  • command : double (변수)=Math.random();
int a=(int)(Math.random()*10);//0~9
			System.out.println(a);
  • int로 강제형변환 하여 0~9의 난수 int를 생성

ex) 0~x(int)의 난수 int 생성 : int a=(int)(Math.random()(x+1));*

int a=(int)(Math.random()*10)+1;//1~10
			System.out.println(a);
  • 1~10의 난수 int를 생성

ex) 1~x(int)의 난수 int 생성 : int a=(int)(Math.random()x)+1;*

난수(Random method)

Random r=new Random();
int n=r.nextInt();
			System.out.println(n);
  • 임의의 난수 int 발생
  • import command : Random (변수)=new Random();
  • 생성 command : int (변수)=(임포트 변수).nextInt();
Random r=new Random();
int n=r.nextInt(10);
			System.out.println(n);
  • 0~9의 난수 int 발생

  • 생성 command에서

    // int (변수)=(임포트 변수).nextInt((자릿수+1) 해당 10배수);

    입력하면 10배수에 해당하는 자릿수의 난수만 발생

Random r=new Random();
int n=r.nextInt(100)+1;
			System.out.println(n);
  • 1~100의 난수 int 발생

배열(Array)

int [] arr1,arr2; //배열로 선언
		arr1=new int[3]; //메모리할당
		arr2=new int[5];  //할당만 돼도 값은 0으로 초기화
  • 배열 변수의 자료형 뒤의 [ ]는 배열명 뒤에 입력 가능
  • int [] arr1=new int[3];
    int arr2 []=new int[5];
for(int i=0;i<arr1.length;i++)
		{
			System.out.println(arr1[i]);
		}
  • 배열 내의 모든 int값(배열 변수의 자료형) 출력하는 방법
for(int a1:arr1)
		{
			System.out.println(a1);
		}
  • for~each문으로 배열 내의 모든 자료값을 출력하는 방법
  • command : for((배열변수자료형) (임의변수): (배열명))
int [] arr= {5,7,8,9,12,23,56,47};
  • 배열 선언과 동시에 초기값 할당
  • command : (배열 변수 자료형) = {(할당값),(할당값),…,(할당값)};

String 변형

String str1="Have a Nice Day";
		String str2="     Happy Day     ";
  • 위와 같을 때

Length

str2.length()
  • String str2의 길이(문자의 개수)

Trim

str2.trim() //Happy Day
str2.trim().length() //9
  • 공백 제거(문자 사이의 공백은 제거되지 않음)와 그 길이

IndexOf

str1.indexOf('H') //0
str1.indexOf('D') //12
  • String str1에서 각 문자의 index값

SubString

str1.substring(7, 11) //Nice
  • String str1에서 7~10번째 index에 해당하는 문자열 추출
  • 주의 : 뒤의 값은 원하는 index+1의 값을 주어야함

Replace

str1.replace("a", "*") //H*ve * Nice D*y
str1.replace("Nice", "Good") //Have a Good Day
  • 문자열 내의 문자열을 대체

숫자를 문자로 변형(String.valueOf)

String b1=12.5+" ";
  • 숫자+String=String
String b3=String.valueOf(100); //int==>String
String b4=String.valueOf(12.6); //double==>String
  • int,double 등의 숫자값을 문자열로 변형

Split

String str3="red,blue,green,gray,white";
	String[] arr=str3.split(","); //arr.length가 5로 추출
  • str3 문자열을 “,”으로 분할하여 arr 배열에 담음
for(String color:arr)
			System.out.println(color);
  • arr 배열의 index를 모두 출력

Max Min

int [] data= {5,120,44,1,23,65,88,99,158};

int max=data[0]; //첫데이터를 무조건 최대값에 저장
		int min=data[0];
		
		//두번째값부터 끝까지 max와 비교
		for(int i=1;i<data.length;i++)
		{
			if(max<data[i])
				max=data[i];
			if(min>data[i])
				min=data[i];
		}
		System.out.println("최대값: "+max);
		System.out.println("최소값: "+min);
  • max와 min 전부 0번째 index로 저장 후 이후의 index와 비교하여 변경

순서 바꾸기(Temp)

int a=10,b=20;
		
		System.out.println("a="+a+" ,b="+b); //a=10,b=20
		
		int temp=a;
		a=b;
		b=temp;

		System.out.println("a="+a+" ,b="+b); //a=20,b=10
  • temp를 빈 그릇으로 생각
int [] n= {5,7,9};
		
		for(int t:n)
			System.out.print(t+" "); //5 7 9

int temp1=n[0];
		n[0]=n[2];
		n[2]=temp1;
		
		for(int t:n)
			System.out.print(t+" "); //9 7 5
  • n 배열에서 0번째 index와 2번째 index를 교환

배열에서 데이터 찾기(Boolean 이용)

Scanner sc=new Scanner(System.in);
		int su; //입력할수
		int [] data= {312,3,543,34,165,23,5,43,456,72,13,64,71};
		boolean flag;
		
		while(true)
		{
			System.out.println("검색할 숫자 입력하세요");
			su=sc.nextInt();
			
			//break..0입력시 종료
			if(su==0)
			{	
				System.out.println("종료합니다");
				break;
			}
			
			//있다 없다 초기값
			flag=false;  //찾으면 true로 변경
			
			//값찾기
			for(int i=0;i<data.length;i++)
			{
				if(su==data[i])
				{
					flag=true;
					System.out.println((i+1)+"번째에서 검색");
				}
			}
			
			if(!flag) //flag==false
				System.out.println(su+"는 데이터에 없습니다");
		}
  • if(!flag) // if(flag==false) if(flag) // if(flag==true)
  • boolean의 초기값을 false로 준 뒤 입력값과 데이터 값이 일치할 때만 true로 바꿔준다
  • 반복문을 통해 배열의 index를 검토 후 입력값과 같은 index를 발견하면 boolean 값을 true로 변경
  • 같은 index 값을 발견하지 못하면 계속 false로 유지
profile
초보개발자

0개의 댓글