개발자
[JAVA 8일차] sum/대,소문자,특수문자 개수 알아오기/계좌번호 유효성검사 본문
sum
<1~10 까지의 합 구하기>
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
|
String str = "";
int sum = 0;
/*
"1+"
"1+" + "2+"
"1+" + "2+" + "3+"
-----------------
"1+2+3+4+5+6+7+8+9+10+"
*/
for(int i=1; i<=10; i++) {
if(i < 10)
str += i+"+"; // str = ""+1+"+";
// str = "1"+2+"+";
// str = "12"+3+"+";
// str = "123"+4+"+";
// ..............
else {
str+=i; // str = "1+2+3+4+5+6+7+8+9+"10;
}
sum+=i; // sum = 0+1; sum=sum+i;
// sum = 1+2;
// sum = 1+2+3;
// ............
// sum= 1+2+3+4+5+6+7+8+9+10
}// end of for---------------------------
// str ==> 1+2+3+4+5+6+7+8+9+10
// sum ==> 1부터 10 까지 누적의 합 ==>55
System.out.println(str+"="+sum);
/*
1+2+3+4+5+6+7+8+9+10=55
*/
|
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
55
56
57
58
59
60
61
|
/*
>> 누적해야할 시작 숫자 => 2엔터
>> 누적해야할 마지막 숫자 => 10엔터
>> 2+3+4+5+6+7+8+9+10=54
*/
Scanner sc = new Scanner(System.in);
String str = "";
int sum = 0;
for(;;) {
try {
System.out.println(">> 누적해야할 시작 숫자 =>");
int startNo = Integer.parseInt(sc.nextLine()); // 1엔터 2엔터 강아지엔터 5엔터
System.out.println(">> 누적해야할 시작 숫자 =>");
int endNo = Integer.parseInt(sc.nextLine()); // 10엔터 5엔터 고양이엔터 2엔터 (2,5는 가능 5,2는 불가능)
int cnt = endNo - startNo + 1; // 반복해야할 횟수
if(cnt <= 0) {
System.out.println("[경고] 누적해야할 마지막 숫자는 시작 숫자보다 같거나 커야 합니다.!!\n");
}
else {
for(int i=0, j=startNo; i<cnt; i++, j++) { //누적치를 구해주기
if( i < cnt-1 ) //cnt-1=3
str +=j+"+"; // str = ""+2+"+";
// str = "2+"+3+"+";
// str = "2+3+"+4+"+";
else // 맨마지막
str += j; // str = "2+3+4+"+5;
sum += j;
}// end of for---------------------------
}
break;
} catch (NumberFormatException e) {
System.out.println("[경고] 정수로만 입력하세요!!\n");
}
} // end of for--------------------------
System.out.println(str+"="+sum);
// 1+2+3+4+5+6+7+8+9+10
// 1+2+3+4+5=14
// 3+4+5+6 =18
sc.close();
|
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
|
canner sc = new Scanner(System.in);
String str = "";
int sum = 0;
for(;;) {
try {
System.out.println("시작할 숫자를 입력하세요 : ");
int start_No = Integer.parseInt(sc.nextLine());
System.out.println("마지막 숫자를 입력하세요 : ");
int end_No = Integer.parseInt(sc.nextLine());
int cy_No = end_No - start_No + 1; // sum 해줄 횟수
if (cy_No <= 0) {
System.out.println("마지막 숫자가 시작할 숫자보다 작을 수 없습니다.");
}
else {
for(int i=start_No; i<=cy_No; i++) {
if(i<cy_No) {
str += i+"+";
}
else
str += i;
sum += i;
}// end of for
}
break;
}catch (NumberFormatException e) {
System.out.println("정수를 입력하세요");
}
}// end of for----
System.out.println(str+"="+sum);
sc.close();
|
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
/*
>> 첫번째 정수 => 3
>> 두번째 정수 => 9
>> 결과 <<
3부터 9까지의 홀수들만의 합 : 24
3부터 9까지의 짝수들만의 합 : 18
*/
Scanner sc = new Scanner(System.in);
int num1=0, num2=0, hol_sum=0, jjak_sum=0;
for(;;) {
try {
System.out.println(">> 첫번째 정수 => ");
num1 = Integer.parseInt(sc.nextLine()); // 1 2 3
System.out.println(">> 두번째 정수 => ");
num2 = Integer.parseInt(sc.nextLine()); // 10 10 10
int holsu=0, jjaksu=0;
//첫번째 정수가 홀수인지 짝수인지 알아오자.
if(num1%2 !=0) { //첫번째 정수가 홀수인 경우
holsu = num1; // holsu = 1;
jjaksu = num1+1;// jjaksu =1+1;
}
else { // 첫번째 정수가 짝수인 경우
holsu=num1+1; // holsu = 2+1;
jjaksu=num1; // jjaksu = 2;
}
// 홀수 및 짝수의 합을 구한다.
for(;;) {
// num=1; num2=10; num1=2; num2=10; num1=3; num2=10;
if(holsu <= num2 ) //홀수의 합 1+3+5+7+9 11 3+5+7+9 11 3+5+7+9 11
hol_sum += holsu;
if(jjaksu <= num2) //짝수의 합 2+4+6+8+10 12 2+4+6+8+10 12 4+6+8+10 12
jjak_sum += jjaksu;
holsu += 2;
jjaksu += 2;
if(holsu > num2 && jjaksu > num2) {
break;
}
}// end of for---------------------------
break;
}catch(NumberFormatException e) {
System.out.println("[경고] 정수만 입력하세요!!\n");
}
}// end of for-------------------------------
System.out.println("\n >>결과 <<\n"
+num1+"부터"+num2+"까지의 홀수들만의 합 : " + hol_sum +"\n"
+num1+"부터"+num2+"까지의 짝수들만의 합 : " + jjak_sum+"\n" );
sc.close();
|
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
|
String word = "Abz3Sa0#$T";
int wordLenght = word.length();
int upperCnt=0, lowerVnt=0, digitCnt=0, specialCnt=0; // 지역변수라 초기화필요
int lowerCnt=0;
for(int i=0; i<wordLenght; i++) {
char ch = word.charAt(i); //글자하나 불러오기
if( Character.isUpperCase(ch)) {
upperCnt++; //3
}
else if( Character.isLowerCase(ch)) {
lowerCnt++; //3
}
else if(Character.isDigit(ch)) {
digitCnt++; // 2
}
else
specialCnt++; //2
}//end of for--------------
System.out.println(word+"\n"
+"전체길이 : " + wordLenght + "\n"
+"대문자 개수 : " + upperCnt + "\n"
+"소문자 개수 : " + lowerCnt + "\n"
+"숫자 개수 : " + digitCnt + "\n"
+"특수문자 개수 : " + specialCnt + "\n");
/*
Abz3Sa0#$T"
전체길이 : 10
대문자 개수 : 3
소문자 개수 : 3
숫자 개수 : 2
특수문자 개수 : 2
*/
|
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
//field
String account_number; //통장계좌번호
String name; //예금주
//method
void register_account(Scanner sc){
for(;;) {
//////////************ 통장번호 입력 시작 *******************************************//////
System.out.print("1. 통장번호 입력(-를 뺀 숫자 10자리만 입력하세요 => ");
String account_number = sc.nextLine(); //지역변수라서 위의 account랑은 다름
// account_number 에 입력된 값이 "100-2345-567" 이라면 - 를 뺀 값이 "1002345678" 이므로 O.K
// account_number 에 입력된 값이 "10S-2345-567" 이라면 - 를 뺀 값이 "10p2345678" 이므로 꽝!!
// account_number 에 입력된 값이 "100-2345-6789" 이라면 -를 뺀 값이 "10023456789" 이므로 꽝!!
// account_number 에 입력된 값이 "100-2345" 이라면 -를 뺀 값이 "1002345" 이므로 꽝!!
// account_number 에 입력된 값이 "1002345678" 이라면 -를 뺸 값이 "1002345678"이므로 O.K
String str = "";
for(int i=0; i<account_number.length(); i++) {
char ch = account_number.charAt(i);
if(ch != '-') {
str += ch; // str = "" + '1'; str = "1"
// str = "1" + '0'; str = "10"
// str = "10" + '0;' str = "100"
// str = "100" + '2' str = "1002
}
}//end of for----------------------------------------
if ( str.length() !=10) { //"10023456789"(11글자)
//"1002345"(7글자)
System.out.println("\n[경고] 통장번호 형식에 맞지 않습니다.");
}
else { // "1002345678"(10글자
// "10p2345678"(10글자) 모든것이 숫자로 이루어지지 않았으므로 꽝!!
// "1002345678"(10글자))
boolean isUseAccount = true;
for(int i=0; i<10; i++) {
char ch = str.charAt(i);
if( !Character.isDigit(ch)) { //숫자가 아니라면
isUseAccount = false;
break; //위의 for문을 빠져나와야 한다.
}
}//end of for-------------------------
if( !isUseAccount ) { //!붙이면 isUseAccout 쓸수 없다면을 가정한것
System.out.println("\n[경고] 통장번호 형식에 맞지 않습니다.");
}
else {
this.account_number = str; //필드에 넣을때 대시(-) 다 뺀 str을 넣어준다
System.out.println(">> 통장번호 개설 완료함 << ");
break;
}
/*if(isUseAccount){ //! 안붙이면 이렇게써야함 개발자 마음이다
this.account_number = str; //필드에 넣을때 대시(-) 다 뺀 str을 넣어준다
System.out.println(">> 통장번호 개설 완료함 << ");
break;
}
else {
System.out.println("\n[경고] 통장번호 형식에 맞지 않습니다람쥐.");
}*/
}///end of else
////************************ 통장번호 입력 끝 **************************//////
}//end of for(;;)------------------------------------------------------
System.out.print("2. 예금주 입력 => ");
String name = sc.nextLine();
this.name = name;
// System.out.println("\n>> 통장번호 개설 완료함 << "); //for문쓸때 뭐 안써놓으면 오류 안떠서 break 안쓴줄 모름
}// end of void register_account(Scanner sc)-------------
void showInfo() {
System.out.println("\n1.통장계좌번호 : " + account_number + "\n"
+"2. 예금주 : " + name) ;
}// end of showInfp()------------------------------------------------------
|
cs |
'개발자 > JAVA' 카테고리의 다른 글
[JAVA 10일차] random(랜덤정수,랜덤알파벳,인증키,랜덤홀짝맞추기, 가위바위보,정수 맞히기 게임) (0) | 2022.08.17 |
---|---|
[JAVA 9일차] 다중 for문/continue/구구단/레이블사용하여break/equalsIgnoreCase/별찍기/while문/do while문 (0) | 2022.08.16 |
[java 7일차] for문/trim/isEmpty/isdigit/유효성검사(숫자,오류횟수,비밀번호) (0) | 2022.08.15 |
[JAVA 6일차]wrapper/tpUppercase/chatAt/Math(반올림등)/equals/switch (0) | 2022.08.15 |
[java 5일차]파라미터 좀 더 이해해보기 (0) | 2022.08.15 |