次のオブジェクトがあります。
public class Color
{
public string RGB = "000225123";
}
R、G、および B コンポーネントを解析できるようにする必要がありますが、正確ではない可能性がありますが、順序はわかります。したがって、ある意味では かもしれませんがRGB
、別の方法では かもしれませんRBG
。
私は次のようなことを考えました:
string G = RGB.Substring(RGB.IndexOf('2'),3);
しかし、ここでたまたま G の開始位置と終了位置がわかっているので、それをハードコードすることができます。これにより、注文を保存する最善の方法は何かという別の問題が生じます。私は次のようなことを考えました:
string order = "RGB";
string RGB = "000225123";
string R = RGB.Substring(order.IndexOf('R'),3);
上記は機能しますが、各パーツの長さが異なる可能性があるシナリオについてはどうR
でしょうか。たとえば、2 文字または 3 文字になる可能性があります。
私はこのような番号を持っているかもしれません:
28-34-29-000-00.0
またはそれは順序である可能性があります
29-34-28-000-00.0
上記では、28
と29
が入れ替わっていて、この順序がわかります。それを解析する方法を知る必要があるだけです。
より現実的なシナリオと解決策を次に示しますが、十分に効率的かどうかはわかりません。
文字列の順序 = "TSR";
string value = "20-10-28-0000-0011";
string[] tokens = value .Split('-');
string t= tokens[order.IndexOf('T')];
string s= tokens[order.IndexOf('S')];
string r= tokens[order.IndexOf('R')];