C#에서 유파를 실장해 본다(𠮷田씨에게도 대응)

6066 단어 재료C#유파
재료 기사가 유행하고 있다! 그래서 C# 9로 쓰려고 합니다.
C# 8 베이스의 것은 다른 쪽이 써 주고 있습니다.

C#에서 유파를 구현해보십시오.

최상위 문장 만 사용할 수있는 것이 없습니다.



유파는 심플하기 때문에 톱 레벨 스테이트먼트 정도 밖에 사용할 수 있는 것이 없습니다… 그래서 이렇게 됩니다.
using System;

Console.WriteLine("契約書だよ。そこに名前を書きな。");
var name = Console.ReadLine();
Console.WriteLine($"フン。{name}というのかい。贅沢な名だねぇ。");

var random = new Random();
var newNameIndex = random.Next(name.Length);
var newName = name[newNameIndex];
Console.WriteLine($"今からお前の名前は{newName}だ。いいかい、{newName}だよ。分かったら返事をするんだ、{newName}!!");

𠮷田 씨 대응



공문자로 떨어지는 것은 사양이므로 두고 있어 𠮷다씨가 일할 수 없는 것은 문제입니다. Windows 명령 프롬프트와 PowerShell에서 𠮷 씨를 볼 수 없으므로 GitHub Codespace에서 적절한 Linux 컴퓨터에서 시도해보십시오.

그렇게 하면 신청 용지는 𠮷다씨에 대응해 준 것 같습니다만 중요한의 할머니가 𠮷다씨라고 버그해 버립니다.



이것입니다만, 속에 말하는 4 바이트 문자에 대응하고 있지 않는 것에 의해 일어납니다. 사로 게이트 쌍이라든지 4 바이트 문자 당으로 빙빙하면 정보가 나옵니다.

C#에서는 System.Globalization.StringInfo 클래스를 사용하여 대응합니다. 이번과 같이 1 문자만 꺼낼 수 있으면 좋다고 하는 경우에서는 StringInfo 클래스의 인스턴스를 만들어 LengthInTextElements 로 사로 게이트 페어도 제대로 봐 준 상태에서의 문자수 카운트를 해 SubstringByTextElements 제대로 고려한 상태에서 1문자 잘라내면 됩니다.

그렇다면 𠮷田 씨에 대응한 유파는 다음과 같습니다.
using System;
using System.Globalization;

Console.WriteLine("契約書だよ。そこに名前を書きな。");
var name = Console.ReadLine();
Console.WriteLine($"フン。{name}というのかい。贅沢な名だねぇ。");

var nameInfo = new StringInfo(name);
var random = new Random();
var newNameIndex = random.Next(nameInfo.LengthInTextElements);
var newName = nameInfo.SubstringByTextElements(newNameIndex, 1);
Console.WriteLine($"今からお前の名前は{newName}だ。いいかい、{newName}だよ。分かったら返事をするんだ、{newName}!!");

그럼 실행해 보겠습니다.



정확합니다. 이것으로 𠮷田 씨도 일할 수 있습니다. 물론 공문자의 경우는 사양대로 예외가 발생합니다.



요약



벌써 1 기사 정도 유파로 쓸 수 있을 것 같은 생각이 든다.

좋은 웹페이지 즐겨찾기