マウスの移動座標があり、
例えば:
s = string.Format("{0:D4},{1:D4}", nx, ny);
the result s is "0337,0022"
問題は、前に 2 桁だけを表示する方法です。
私は取得したい:
s is "03,00"
別の例を次に示します。
s = "0471,0306"
私はなりたい:
s = "04,03"
座標が「-」の場合
例
s = "-0471,0306"
私はなりたい:
s = "-04,03"
マウスの移動座標があり、
例えば:
s = string.Format("{0:D4},{1:D4}", nx, ny);
the result s is "0337,0022"
問題は、前に 2 桁だけを表示する方法です。
私は取得したい:
s is "03,00"
別の例を次に示します。
s = "0471,0306"
私はなりたい:
s = "04,03"
座標が「-」の場合
例
s = "-0471,0306"
私はなりたい:
s = "-04,03"
s =string.Format("{0},{1}",
string.Format("{0:D4}", nx).Substring(0,2),
string.Format("{0:D4}", ny).Substring(0,2));
次のように、カンマで文字列を分割し、各部分の最初の 2 文字を部分文字列にするだけです。
string result = String.Empty;
string s = String.Format("{0:D4},{1:D4}", nx, ny);
string[] values = s.Split(',');
int counter = 0;
foreach (string val in values)
{
StringBuilder sb = new StringBuilder();
int digitsCount = 0;
// Loop through each character in string and only keep digits or minus sign
foreach (char theChar in val)
{
if (theChar == '-')
{
sb.Append(theChar);
}
if (Char.IsDigit(theChar))
{
sb.Append(theChar);
digitsCount += 1;
}
if (digitsCount == 2)
{
break;
}
}
result += sb.ToString();
if (counter < values.Length - 1)
{
result += ",";
}
counter += 1;
}
注: これは、文字列に含まれるコンマ区切り値の量に関係なく機能しますs。