2016-12-25 7 views
-5

変更:LINQのは、分割して、私はstring.Itがどのように見える持っている文字列

データ= "DA00VB0012004500890044010000000700000004000000 0000"。

data = "DA00NM0012002700890032010000000700000004000000 1A000001A 0000";

この文字列を分割して変更する必要があります。ここで
私のコードです:
最初の文字列の


:ここ

public string Getstring(string value, int start = 47, int end = 54) 
{ 
    string spstart = string.Empty; 
    string spend = string.Empty; 
    start = start - 1; 
    end = end + 1; 
    if (value != string.Empty) 
    { 
     var mem = value.Substring(start, end - start); 
     spstart = mem.Substring(0, 2); 
     spend = mem.Substring(mem.Length - 2, 2); 
    } 
    if(spstart.Trim().Equals(spend.Trim()) 
    { 
     return mem; 
    } 
    return "not found"; 
} 

は、私が得た結果であり、 1A 1A
始まりと終わりが同じで表示されます:01 01または1A 1A。

最終結果私が取得したい:

- >0C 0℃

1A 1A - >0C 0C

data = "DA00VB0012004500890044010000000700000004000000 0C 0C 0000";

文字列の先頭と末尾を置換したいと思います。 そして私は、GetStringメソッドのために短い方法を探してい0℃ 0℃

で文字列にまたは1A 1Aを交換し、私が欲しいものを手に入れます。 私はLinqとRegex.Againを見ています。 私はそれらを慎重に読んでいます。 私はこのトピックを削除しません。解決策があれば投票します。 ありがとうございました。

+5

出力を説明してください。 – DarkKnight

+1

あなたが探しているBOTHの文字列、つまり "01"は同じなので、 "0C"または "15"に置き換えられたときはどう思いますか?あなたの2番目の行を推測しています最終結果は '1A000001A - > 150000015'でしょうか?これが事実なら... string.substitute? – JohnG

+0

0Cと15は16進値です。そうですよ! 2番目の行の最終結果です。1A000001A - > 150000015 @ JohnG – Jandy

答えて

1

あなたの意見では、の意味は分かりません。どのように多くの方法がありますか ???以下は、あなたが記述しているように文字列を置き換える方法です。あなたの質問が非常に単純な文字列置換問題であるため、あなたが達成しようとしていることの全般的な理想を皆に与える方が良いかもしれません。以下に示す文字列を置き換えます。

String s1 = "010000001"; 
    String s2 = "1A000001A"; 

    String s3 = s1.Replace("01", "0C"); 
    String s4 = s2.Replace("1A", "15"); 

    Console.WriteLine(s1 + " -> " + s3 + "\n\r" + s2 + " -> " + s4); 
    Console.ReadKey(); 
+1

JohnGありがとう!置換を使用してそれは基本的なway.oneの単純な。すべてのsames.jpをトピックの先頭に置き換えて、私はGetstringの短い方法を探しています。@ JohnG – Jandy

関連する問題