構文解析器に似ています


C# code private void button1_Click( object sender, EventArgs e) { List < string > olist = new List < string > ( new string [] { " >= " , " <= " , " ++ " , " += " , " -= " , " == " }); // コンボ記号 List < char > list = new List < char > ( new char [] { ' ' , ' , ' , ' ; ' , ' { ' , ' } ' , ' ( ' , ' ) ' , ' + ' , ' - ' , ' = ' , ' > ' , ' < ' }); // シングルシンボル string txt = System.Text.RegularExpressions.Regex.Replace(textBox1.Text.Trim(), @" \s " , " " ); string temp = "" ; for ( int i = 0 ;i < txt.Length;i ++ ) { if (i < txt.Length - 1 ) { if (olist.Contains(txt[i].ToString() + txt[i + 1 ].ToString())) { if (temp.Length > 0 ) { listBox1.Items.Add(temp); temp = "" ; } listBox1.Items.Add(txt[i].ToString() + txt[i + 1 ].ToString()); i ++ ; continue ; } } if (list.Contains(txt[i])) { if (temp.Length > 0 ) { listBox1.Items.Add(temp); temp = "" ; } if (txt[i] != ' ' ) listBox1.Items.Add(txt[i].ToString()); continue ; } temp += txt[i].ToString(); } } 処理コードテストコード: C/C++ code int a,b; main() { if(a>b) a+b=10; else if(a==b) a-=b; else a=b; } 結果:


int a , b ; main ( ) { if ( a > b ) a + b = 10 ; else if ( a == b ) a -= b ; else a = b ; } :正しい