C#でDNAの相補鎖を出すプログラム(5)とりあえず完成
http://smdn.jp/programming/netfx/string/1_operations/
の、「Char配列への変換 (ToCharArray, CopyTo)」を見ながら、
文字列の反転を入れてみる。
C#では、Stringクラスでは文字列の並びを反転するメソッドは用意されていない。 らしい。。。
String.ToCharArrayメソッドは文字列をChar配列へ変換するメソッド らしい。。。
Stringクラスでは文字列の並びを反転するメソッドは用意されていません。
文字列の反転を行う例として、以下のような方法がある。
ToCharArrayメソッドを用いて一度Char配列にしてから、
Array.Reverseメソッドにより反転したのちに
再びStringに変換することで文字列の反転を実現する。 らしい。。。
はい、ここらへん、はっきりいってちんぷんかんぷんだけど、悩んでも面倒なので、がんがんすすんじゃおう。
http://smdn.jp/programming/netfx/string/1_operations/#section.1.13
Char配列への変換 (ToCharArray, CopyTo)
http://smdn.jp/programming/netfx/string/1_operations/#section.1.14
Char配列からの変換 (Stringコンストラクタ)
http://smdn.jp/programming/netfx/string/1_operations/#section.2.2
Stringクラスで提供されない操作
反転 (Reverse)
を見ながら、プログラムを書いて、エラーを見ながら直していく。
やっとできた。。。
———————————————–
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace complement
{
public partial class Complement : Form
{
public Complement()
{
InitializeComponent();
}
private void CloseMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void button1_Click(object sender, EventArgs e)
{
// 文字を入力してもらう
string seq = textBox1.Text;
// ToLower … アルファベットを小文字に変換
seq = seq.ToLower();
// a→t, t→T→a, g→c, c→C→gに変換
seq = seq.Replace("t", "T");
seq = seq.Replace("a", "t");
seq = seq.Replace("T", "a");
seq = seq.Replace("c", "C");
seq = seq.Replace("g", "c");
seq = seq.Replace("C", "g");
// 文字列をChar配列へ変換、反転(、String配列へ変換)
char[] chars;
chars = seq.ToCharArray();
Array.Reverse(chars);
// 変換後の塩基配列を表示
textBox2.Text = new string(chars);
}
}
}
———————————————–
やっとこさ、C#で、相補鎖を表示するプログラムを書くことができた。
本当は、「例外処理」とか、その他いろいろ行うべきであろうが、まあ、よくわからないのでこれで一旦終了。
(ウインドウの大きさを変えると、中身が変な風になってしまうのとかは無視。)
生まれて初めてHello World以外のプログラムを書くことができてうれしかった。