[공부] 261001 - 문자열 다루기 2
본문 로딩 중...
댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
using System;
//원본 문장과 교체 내용을 한 줄씩 입력받
Console.Write("원본 문장: ");
string origin = Console.ReadLine();
Console.Write("교체 내용: ");
string change = Console.ReadLine();
//원본의 첫 [부터 그 뒤에 처음 나오는 ]까지를 대괄호를 포함해
//교체 내용으로 바꿈.
//완성된 구간이 없으면 원본을 그대로 둠
//대괄호는 중첩되지 않으며 두 입력 모두 빈 문자열일 수 있음.
//Remove와 Insert의 첫 인수는 시작 인덱스임
//Remove의 두 번째 인수는 지울 코드 단위의 개수이며,
//Insert의 두 번째 인수는 끼워 넣을 문자열임.
Console.WriteLine($"원본: [{origin}]");
string result = origin.Remove(3, 4);
Console.WriteLine($"결과: [{result.Insert(3, change)}]");
Remove(3, 6)을 "3번부터 6번까지"로 착각함 (두 번째 인수는 끝 위치가 아니라 지울 개수)origin.Remove(3, 4);만 쓰고 결과를 변수에 안 받아서, 지운 게 반영되지 않음 (문자열 함수는 원본을 안 바꾸고 새 문자열을 돌려줌)
[는 3번, ]는 6번임을 찾음Remove(3, 4)의 결과를 result에 받고, 그 위에 Insert(3, 교체 내용)
IndexOf('['), IndexOf(']')로 찾게 바꾸기[나 ]가 없으면 원본 그대로 두기
Remove(시작, 개수), Substring(시작, 개수) 둘 다 두 번째는 개수csharp
char[] chars = origin.ToCharArray();
int digitTotal = 0;
for (int i = 0; i < chars.Length; i++)
{
if (char.IsDigit(chars[i]))
{
digitTotal++;
}
}
int digitSeen = 0;
for (int i = 0; i < chars.Length; i++)
{
if (char.IsDigit(chars[i]))
{
digitSeen++;
if (digitSeen <= digitTotal - 2)
{
chars[i] = '*';
}
}
}
string result = new string(chars);
어려웠던 이유?
어떻게 풀었나?
char.IsDigit으로 글자 하나가 숫자인지 판별ToCharArray로 문자열을 수정 가능한 배열로 바꿈*new string(chars)로 다시 문자열로남은 것
코드: → 결과:알게된것
Develog는 단순히 글을 쓰는 공간이 아닙니다. 성장의 과정을 기록하고, 그 기록으로 나를 증명하며 원하는 기회를 얻는 곳이길 바랐습니다. 누군가의 꿈으로 향하는 중간다리가 되는 것, 그것이 Develog를 만든 이유입니다.

우리들의 게임 발매 이야기

안녕하세요. 플밍 4기 입니다. 게임 개발을 배우기 전 네트워크 엔지니어 도메인에서 익히고 배웠던 네트워크 이론에 대한 기초 입니다. 학습에 도움이 되길 바라며 공유 드립니다.
Develog는 단순히 글을 쓰는 공간이 아닙니다. 성장의 과정을 기록하고, 그 기록으로 나를 증명하며 원하는 기회를 얻는 곳이길 바랐습니다. 누군가의 꿈으로 향하는 중간다리가 되는 것, 그것이 Develog를 만든 이유입니다.



안녕하세요. 플밍 4기 입니다. 게임 개발을 배우기 전 네트워크 엔지니어 도메인에서 익히고 배웠던 네트워크 이론에 대한 기초 입니다. 학습에 도움이 되길 바라며 공유 드립니다.