3

文字列の 2 文字ごとに削除する方法は?

例えば:

3030313535333635  -> 00155365
3030303336313435  -> 00036145
3032323437353530  -> 02247550

文字列は常に 16 文字の長さで、結果は常に 8 文字の長さです - そして削除される文字は常に '3' です - 理由は聞かないでください - 私はこのクレイジーなソースデータを思いつきませんでした.

4

5 に答える 5

12

文字列から他のすべての文字を取得するには、これを試してください:-

 var s = string.Join<char>("", str.Where((ch, index) => (index % 2) != 0));
于 2012-10-31T19:54:28.060 に答える
9
String input = "3030313535333635";
String result = "";
for(int i = 1; i < 16; i +=2 )
{
    result += input[i];
}
于 2012-10-31T19:55:06.647 に答える
6

このよく知られたクラスを使用できますSystem.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary:)

string str = "3030313535333635";
var hex = System.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary.Parse(str);
var newstr = Encoding.ASCII.GetString(hex.Value);
于 2012-10-31T19:58:55.880 に答える
3

を使用しStringBuilderて文字列を作成すると、リソースが節約されます

string input = "3030313535333635";
var sb = new StringBuilder(8); // Specify capacity = 8
for (int i = 1; i < 16; i += 2) {
    sb.Append(input[i]);
}
string result = sb.ToString();
于 2012-10-31T20:04:39.197 に答える
1

Java 言語のコード

String input= "3030313535333635"
String output="";

for(int i=1;i<input.length();i=i+2)
{
    output+=input.charAt(i).toString();
}
System.out.println(output);
于 2012-10-31T19:59:05.040 に答える