0

これは単純な初心者の質問です。おそらく、部分文字列やその他の方法のような文字列の複雑な方法を使用してこれを理解することができましたが、これを行うためのより良い方法があるかどうか疑問に思っていました.

C# に文字列があるとします。

string foo = "°F";

それを「deg」と「F」を持つ2つの異なる文字列に分割する最良の方法は何ですか?

何が起こっていたのかがわかります。stackflow が HTML を解釈していました。実際には (アンパサンド)deg(セミコロン)F です。

昨夜投稿したのに遅くなってすみません。

4

2 に答える 2

8

「複雑」かどうかはわかりませんが、

string degree = foo[0].ToString();
string f = foo[1].ToString();

ただし、あまりにも単純な例を選択したように感じます。本当に 2 文字の文字列を扱っているのでしょうか、それとももっと面白いことをしようとしているのでしょうか?

更新: ええと、ここでもっと難しいことをしようとしているに違いないと思います。しかし、ここに別の方法があります: (帽子のヒント: @James Didzun)

string f = foo.Replace("°","");
string deg = foo.Replace("F", "");

または、次のようにすることもできます。

string deg = foo.Substring(0, 5);
string f = foo.Substring(5,1);

または:

 var deg =  new string(foo.TakeWhile(c => c != 'F').ToArray());
 var f = foo.SkipWhile(c => c != 'F').First().ToString();

または:

string[] x = foo.Split(';');
string deg = x[0] + ";";
string f = x[1];

または:

string deg = "°"
string f = "F";

個人的には、この最後のアプローチを好みます。正確な内容を知っている文字列を分割するのはなぜですか?

于 2012-04-24T02:09:18.523 に答える
1

これはどう :-)

char[] foo = "°F".ToCharArray();

char c1 = foo.First();
char c2 = foo.Last();
于 2012-04-24T04:42:53.300 に答える