해야할게 많으니 사람이 부지런해 지는거 같습니다.
시간이 촉박하다 ~~
사용자 입력중 대문자에
_을 추가와
소문자로 변환하는 문제였습니다.

메인 함수는 사용자가 입력할 때 부분을 넣었고
void main() {
stdout.write('문자열 입력:');
String input = stdin.readLineSync()!;
named(input);
named 함수부터 고민했던 부분을 시작하겠읍니다!!
그전에 저는 헷갈리는 부분을void main 으로
하나씩 찍으면서 문제를 해결하고 있습니다.

void main() {
stdout.write('문자열 입력:');
String input = stdin.readLineSync()!;
named(input);
}
named(input) {
List<String> inputA = input.split('');
String inputB = '';
for (int i = 0; i < input.length; i++) {
if (input.contains(inputA[i].toUpperCase())) {
inputB += '_' + inputA[i];
}
}
print(inputB);
}
DartPracticeFor을 split 으로 나눠주고,
DartPracticeFor 길이는 15글자이므로
for 을 이용해서 사용자 입력만큼 반복하고
if 로 대문자 앞에 _ 출력하게 조건을 했지만

대문자, 대문자 앞에 _ 만 나왔습니다.
예상한대로 나왔지만
'나머지 문자를 어떻게 출력하고,
또 첫 대문자 _ 는 어떻게 지우지?'
if 만 사용하다보니 else 을 까먹고 있었습니다.
튜트리얼 보고 else 을 기억하게 되었어요.
그리고 여기서 += 의 용도를 알게 되었습니다.
inputB += '_' + inputA[i]; // _D_P_F 출력
inputB = '_' + inputA[i]; // _F 만 출력
+= 은 생각한대로 추가해주는 역할이였고
= 은 덮어쓰는(?) 표현이 애매한데
void main(){
int a = 5;
a = 3;
print(a);
print(a.runtimeType);
}
Type 확인하고 싶을때 runtimeType 써야하는것도 확인

else 문으로 추가하니
else {
inputB += inputA[i];
}

소문자로 변경하는거와 첫 문장 _ 삭제만 하면 끝인거 같은데
소문자는 toLowerCase() 을 하면 되는데
첫 문장 삭제가 해결이 계속 안됐습니다.
int i = 1;
String inputB = 'd';
로 수정해서 원하는 값은 나왔지만
방법이 아닌거 같아 솔루션을 봤지만 소신발언하면
솔루션 기초용 아닌거 같습니다. 봐도 이해가 안돼서
저런 방법도 있구나? 하고 GPT형한테 물어보니
String inputB = inputA[0].toLowerCase();
어? 따옴표 '' 을 안해줘도 오류가 안나네?
설명에 toLowerCase() 문자열에 대한 메서드여서
따옴표 '' 로 감싸줄 필요가 없다고 하네요.
if , else 에 toLowerCase() 있으니
String inputB = inputA[0]; 찍어보닌깐
정상 출력되지만 대문자로 나옵니다. ㅋㅋ
최종 코드는 요롷게 ~
문제에 String 타입으로 반환해줘야 한다고 해서
import 'dart:io';
void main() {
stdout.write('문자열 입력:');
String input = stdin.readLineSync()!;
String result = named(input);
print(result);
}
String named(input) {
List<String> inputA = input.split('');
String inputB = inputA[0].toLowerCase();
for (int i = 1; i < input.length; i++) {
if (input.contains(inputA[i].toUpperCase())) {
inputB += '_' + inputA[i].toLowerCase();
} else {
inputB += inputA[i].toLowerCase();
}
}
return inputB;
}
문제 하나에 배운게 많은거 같습니다.
강사님께서 여기까지도(?) 이해 하게끔 의도하신
큰 그림이 아닌가 싶어요. ㅋㅋ
오늘은 하나 더 올릴 생각 입니다.