C#で文から重複する単語をすべて削除する方法
C#では、LINQのDistinct()メソッドを活用することで、文字列に含まれる重複する単語を簡単に削除できます。この記事では、具体的なサンプルコードとその実行結果を交えながら、手順をわかりやすく解説します。
重複する単語を含む文字列の準備
まずは、重複する単語が含まれた文字列を用意します。次の例では、「One」という単語が2回出現しています。
string str = "One Two Three One";
この文字列から重複を取り除き、各単語を1回だけ表示させるのが今回の目的です。
サンプルコード
重複する単語を削除するには、以下のコードを実行します。処理の流れは次のとおりです。
- Split(' ')メソッドで文字列を空白区切りで分割し、単語の配列を作成
- LINQクエリで単語をアルファベット順に並べ替え
- Distinct()メソッドで重複する要素を除外
- ToLower()メソッドですべて小文字に変換して出力
using System;
using System.Linq;
public class Program {
public static void Main() {
string str = "One Two Three One";
string[] arr = str.Split(' ');
Console.WriteLine(str);
var a =
from k in arr
orderby k
select k;
Console.WriteLine("After removing duplicate words...");
foreach(string res in a.Distinct()) {
Console.Write(" " + res.ToLower());
}
Console.ReadLine();
}
}実行結果
上記のプログラムを実行すると、コンソールには次のように表示されます。
One Two Three One After removing duplicate words... one three two
このように、元の文字列「One Two Three One」から重複していた「One」が1つにまとめられ、「one three two」という結果が得られました。並べ替えを行っているため、出力順序は元の文字列とは異なる点に注意してください。
ポイントのまとめ
大文字と小文字が混在する場合でも、ToLower()で小文字に統一してから比較することで、確実に重複を検出できます。また、元の文字列の順序を保持したい場合は、orderby句を外し、Distinct()だけを使用すれば対応可能です。状況に応じて使い分けてみてください。
-
【初心者向け】Pythonで文章から重複する単語をすべて削除する方法
プログラミングでは、与えられた文章から重複する単語を取り除いて整理したい場面がよくあります。本記事では、Pythonの標準ライブラリ「collections.Counter」を活用して、文章内の重複単語を効率的に削除する方法を解説します。処理の概要たとえば、次のような文章が与えられたとします。入力:I am a peaceful soul and blissful soul. 出力:I am a peaceful soul and blissful.このように、「soul」という単語が2回出現している場合、2回目以降の出現を削除し、各単語が1回だけ含まれる文章を作成します。アルゴリズムの手順重
-
【Python】文字列から重複する単語をすべて削除する方法
Pythonで文字列に含まれる重複した単語をすべて削除するには、まず文字列をスペースで区切って各単語をリストに格納します。そのうえで、いくつかの方法で重複を取り除くことができます。 ここでは、すべての単語を小文字に変換してからソートし、重複を除外して一意な単語のみを抽出する方法を紹介します。 ソートとループを使った方法 次のコードでは、split()メソッドで文字列を単語ごとに分割し、lower()で小文字に統一したあと、リストを走査して重複しない単語だけを新しいリストに追加しています。 sent = Hi my name is John Doe John Doe is my name #