3

如何删除字符串中的每个第二个字符?

例如:

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

使用 aStringBuilder创建字符串将节省资源

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 回答