2017-02-25 8 views
-1

私は1行に2 + 5のような入力を取っているので、intのような3つの異なる変数で区切りたいとします。 2、B = 3で、char演算子= '+'入力を1行で別々の変数に保存する方法

PS:私の簡単な電卓プログラムを微調整しようとしている

+1

あなたは、分割方法を使用することができます。 –

+0

そのアプローチはエラーが起こりやすいのではなく、私はあなたが私のアイデアが好きであれば、簡単に入力を検証できるように各パートを別々に尋ねることを提案します。 –

+0

数学的表現を評価しようとしているだけなら[方法はあります](http://stackoverflow.com/q/333737/301857)。 –

答えて

2

split方法

基づいている部分文字列に文字列を分割を使用してみてください配列内の文字

SYNTAX:

public string[] Split(params char[] separator) 

See more here

+0

スプリットは+を削除しますか? –

0

あなたがより確実に各コンポーネントを取得するために正規表現を使用することができます(つまり、これは任意の長さのint型の数値をサポートしています):

class Program 
{ 
    static void Main(string[] args) 
    { 
     var input = "20+5"; 

     var regex = new Regex(@"(\d+)(.)(\d+)"); 

     if (regex.IsMatch(input)) 
     { 
      var match = regex.Match(input); 
      var a = match.Groups[1].Value; 
      var op = match.Groups[2].Value; 
      var b = match.Groups[3].Value; 

      Console.WriteLine($"a: {a}"); 
      Console.WriteLine($"operator: {op}"); 
      Console.WriteLine($"b: {b}"); 
     } 
    } 
} 

出力

a: 20 
operator: + 
b: 5 
0

これを試してみてください:

string strResult = Console.ReadLine(); 

//On here, we are splitting your result if user type one line both numbers with "+" symbol. After splitting, 
// we are converting them to integer then storing the result to array of integer. 
int[] intArray = strResult.Split('+').Select(x => int.Parse(x)).ToArray(); 

今、あなたはので、私は私の好きな入力を取っている場合には、想定お願いしたいと思いますそのインデックス

intArray[0] 
//or 
intArray[1] 
0

を経由して、あなたの番号を今すぐアクセスすることができ2+ 5 1行でint a = 2、 b = 3、char演算子= '+'のような3つの異なる変数で区切りたい場合

params配列を使用すると、任意の数のパラメータをメソッドに渡すことができます。その後、それらを分割することができます。

例:

public int Result(params char[] input){ 
    // split the input 
    // any necessary parsing/converting etc. 
    // do some calculation 
// return the value 
} 
+0

これは、入力の解析方法であるOPの元の問題に対処していません。これは明示的に3つの入力を取ります。 – Steve

+0

彼の質問の中で私たちのチャットを読んでいれば、彼は私が別の解決方法を提供したら彼が幸せだったと明確に述べました....... –

+0

その後、質問も編集されているはずです。ページはそれ自身の上に立つべきです。 – Steve

関連する問題