🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

1034閲覧

C#で文字列を解析し別の文字に置き換えたい。

naoiwa24

総合スコア18

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2020/05/30 14:06

C#のwindows フォームで、textBox1に、あいうえおの文字を組み合わせて作った文(うえあ等)を入れたら、ボタンでABCDEの組み合わせに変換(うえあだったらCDA)しtextBox2に書き込むプログラムはどう書けばいいと思いますか?

TextElementEnumeratorについても調べたのですがよくわからなかったです。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

どう書けばいいと思いますか?

その仕様をそのままコードにすれば良いのです。
この質問の根本問題は、 仕様を満たすコードを書く方法が分からないこと です。

根本問題の解決策について、説明と回答をします。

そもそも「仕様」とは

仕様には何事も インプット(入力) があって、 アウトプット(出力) があります。
そして、インプットからアウトプットに変換する処理 があります。

インプット と アウトプット が何かを考える

あいうえおの文字を組み合わせて作った文(うえあ等)を入れたら、ボタンでABCDEの組み合わせに変換(うえあだったらCDA)しtextBox2に書き込む

naoiwa24さんがそれを作りたいというのであれば、まずは インプット と アウトプット が何かを洗い出してください。

  • インプット:あいうえおの文字を組み合わせて作った文(うえあ等)を入れたら
  • アウトプット:ABCDEの組み合わせに変換(うえあだったらCDA)

インプット と アウトプット が何かを C# ベースで考える

C# では型の概念が存在します。C# で処理を作りたければ、インプットが何の型でアウトプットが何の型かを常に考える必要があります。

インプットは「文字を組み合わせて」と書いているので C# では string です。
アウトプットも「ABCDEの組み合わせに変換しtextBox2に書き込む」と書いているので string です。

インプット と アウトプット をどこに実装するか

C#でコーディングする際はまずクラスを定義して、メソッドを定義します。
メソッドに実処理を記述することができます。この内、
C#における インプット とはメソッドの引数 (もしくはクラス内のメンバー)のことで
C#における アウトプット とは メソッドの戻り値 (もしくはクラス内のメンバー)のことです。

なぜクラスをまたいでメソッドを定義しなければならないのか。それは C# がオブジェクト指向言語だからです。
ここは、話がそれるので詳しい説明は割愛します。

ここまで前提の説明をして、ようやく回答

textBox1に、あいうえおの文字を組み合わせて作った文(うえあ等)を入れたら、ボタンでABCDEの組み合わせに変換(うえあだったらCDA)しtextBox2に書き込むプログラム

メソッドを定義して、引数にtextBox1のテキストを渡し、メソッドで文字列を求めているものに変換し、変換後の文字列をtextBox2のテキストに書き込めば良いのです。

コードを書く方法はお伝えしたので、内容さえ理解できれば実践できるはずです。
あとは実際に試してみましょう。

投稿2020/05/31 05:05

BluOxy

総合スコア2663

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BluOxy

2020/05/31 05:08

> メソッドで文字列を求めているものに変換し ここが分からないという話であれば、まずは「あ」をインプットとして「A」をアウトプットするメソッドを定義するとこから試してみましょう。何事も問題は小さくしてから試しましょう。
naoiwa24

2020/05/31 12:29

とりあえず、一文字で判断させようと思いこれを書きました。 private void button1_Click(object sender, EventArgs e) { string genbun = textBox.Text; if (genbun = "あ") { textBox3.Text == "A"; } } これで一文字はできるようになったのですが複数の文字を処理できません。複数の文字を処理するにはどうすればいいですか?
naoiwa24

2020/05/31 12:31

自分なりにやってみたのですが(if文をループさせる)では動きませんでした。
BluOxy

2020/05/31 16:47 編集

> これで一文字はできるようになった naoiwa24さんはご自身で自己解決に一歩進みました。 この試行の積み重ねでどんな問題でも解決できます。 であれば、次は2つのパターンで試してみませんか。下記の実装をしてみてください。 ・インプットが「あ」なら「A」をアウトプット ・インプットが「い」なら「B」をアウトプット できたら、C・D・Eも同じように出力してみましょう。
BluOxy

2020/06/17 11:22 編集

その機能に必要な要素を、1つ1つ堅実に作っていくのです。 2020/05/31 21:39の処理が実現できれば、入力に対応する文字列の出力が出来る訳です。まずはそこだけを考えましょう。 その次に入力文字が複数のときの対応を考えれば良いのです。 ※2020/06/17 追記 進捗はいかがでしょうか……?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問