C#で入力された文字列をカウントする方法を教えていただきたいです。
しかし、入力される値は????????????????や????????などサロゲートペアで構成されている文字列です。
「今日は家族で旅行に行った????????????????」これを.Lengthでカウントすると23カウントです
そうではなく、みた通りの13文字としてカウントしたいです。
良いやり方があれば教えてくださいよろしくお願い致します????♂️
SurferOnWwwさんの回答を元に記述した内容
C#
1 2string s = "今日は家族で旅行に行った????????????????"; 3StringInfo si = new StringInfo(s); 4int count = si.LengthInTextElements;
変数countの中身は19でした。
平日はすぐに返事できます。
https://qiita.com/okazuki/items/03049da368222b562da9
本題に関係ないですけど、33カウントにも14文字にも見えませんが、何か間違っていませんか?
質問者さん、無言ですが、回答が出ているのでそれらに対するフィードバックを書きましょう。役に立った/立たなかったぐらいはすぐ返せるはず。役に立たなかったなら、どこがダメだったかを書くと、より質問者さんが期待する答えに近いものが出てくるかも。とにかく無言で放置は NG です。
ikadzuchiさん
間違えです
申し訳ございません
今日は家族で旅行に行った???????????????? は.Lengthにて23カウント
見た目の文字カウントは13カウントでした
SurferOnWwwさん
申し訳ございません
土日は忙しく返信を怠っておりました。
> 役に立った/立たなかったぐらいはすぐ返せるはず
こちら仰る通りでございます。
以後気をつけます。
質問時に返信できる曜日等を記載するように致します
「以後」じゃなく「この質問で」やれということですが。
Zuishinさん
ただいま貼っていただいた記事を拝見し実際にコードを動かし検証中です
Zuishinさん
記事ありがとうございました。
拝見いたしました。
これをふまえ回答してくださった方の内容を見ていきます。
> 変数countの中身は19でした。
同じコードを試してみましたが、13 になりました。
環境は以下の通りです。
.NET 5
C# 9.0
Visual Studio 2022 preview
Zuishinさん
コードを試してくださりありがとうございます。
環境を質問に追記いたします。
回答に、
> 以下の .NET 5.0 のコンソールアプリで、
と書きましたように、.NET 5.0 で試してみてください。
回答2件
あなたの回答
tips
プレビュー