私は1行に2 + 5のような入力を取っているので、intのような3つの異なる変数で区切りたいとします。 2、B = 3で、char演算子= '+'入力を1行で別々の変数に保存する方法
PS:私の簡単な電卓プログラムを微調整しようとしている
私は1行に2 + 5のような入力を取っているので、intのような3つの異なる変数で区切りたいとします。 2、B = 3で、char演算子= '+'入力を1行で別々の変数に保存する方法
PS:私の簡単な電卓プログラムを微調整しようとしている
split
方法
基づいている部分文字列に文字列を分割を使用してみてください配列内の文字
SYNTAX:
public string[] Split(params char[] separator)
スプリットは+を削除しますか? –
あなたがより確実に各コンポーネントを取得するために正規表現を使用することができます(つまり、これは任意の長さの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
これを試してみてください:
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]
を経由して、あなたの番号を今すぐアクセスすることができ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
}
あなたは、分割方法を使用することができます。 –
そのアプローチはエラーが起こりやすいのではなく、私はあなたが私のアイデアが好きであれば、簡単に入力を検証できるように各パートを別々に尋ねることを提案します。 –
数学的表現を評価しようとしているだけなら[方法はあります](http://stackoverflow.com/q/333737/301857)。 –