이 결과를 읽는 가장 좋은 방법은 무엇입니까 string
? 만 문자열이 웹 서비스 나 사용자 mystring.split(' ')
수문자열에서 값 추출
"RESULT: FAILED
RESULT_CODE: 944
RRN: 313434415392
APPROVAL_CODE: 244447
CARD_NUMBER: 4***********3412";
에서 반환, 구문 분석 할 필요가 있지만, 내가 생각하는 좋은 생각이 아니다.
이 결과를 읽는 가장 좋은 방법은 무엇입니까 string
? 만 문자열이 웹 서비스 나 사용자 mystring.split(' ')
수문자열에서 값 추출
"RESULT: FAILED
RESULT_CODE: 944
RRN: 313434415392
APPROVAL_CODE: 244447
CARD_NUMBER: 4***********3412";
에서 반환, 구문 분석 할 필요가 있지만, 내가 생각하는 좋은 생각이 아니다.
당신은 사전 구축 LINQ를 사용할 수 있습니다 키에 의해 결과를
string s =
@"RESULT: FAILED
RESULT_CODE: 944
RRN: 313434415392
APPROVAL_CODE: 244447
CARD_NUMBER: 4***********3412";
IDictionary<string, string> result = s
.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
.Select(line => line.Split(':'))
.ToDictionary(x => x[0].Trim(), x => x[1].Trim());
을 다음 쿼리 :
Console.WriteLine(result["RRN"]);
당신에게 313434415392
을 줄 것입니다.
또는 모든 키와 값을 간단하게 루프를 얻고 싶었다 경우 : 당신은 루프를 방지하려는 경우
foreach (var item in result)
{
Console.WriteLine("key: {0}, value: {1}", item.Key, item.Value);
}
1 회선 LINQ 코드 – Damith
엔티티 (클래스)를 만들고 인스턴스를 반환하십시오.
public class ReturnValues
{
public string Result {get; set;}
public string return_Code
// Other properties
}
무엇을 의미합니까? 이 값은 웹 서비스에서 문자열로 반환됩니다 ... – levi
@levi : 질문했을 것입니다. 질문에 웹 서비스 질문이라고 언급하지 않습니다. –
당신이 웹 서비스 중 하나를 언급하기 전에 당신의 대답은 말이되지 않습니다. –
string text = @"RESULT: FAILED
RESULT_CODE: 944
RRN: 313434415392
APPROVAL_CODE: 244447
CARD_NUMBER: 4***********3412";
using (StringReader reader = new StringReader(text))
{
string line;
while ((line = reader.ReadLine()) != null)
{
var values = line.Split(':');
if (values.Length > 1 && values[0].Trim() =="RESULT")
{
var found = values[1].Trim(); // this is the value you want
break;
}
}
}
분할이 좋은 방법입니다. – levi
LineReader 클래스를 찾을 수 없습니다. – levi
@levi 링크를 클릭하십시오. 수업이 응답 중입니다. – christopher
var regex = new Regex(@"(RESULT:)[a-zA-Z0-9\t .]+");
string text = @"RESULT: FAILED
RESULT_CODE: 944
RRN: 313434415392
APPROVAL_CODE: 244447
CARD_NUMBER: 4***********3412";
MatchCollection matches = regex.Matches(text);
foreach (Match m in matches)
{
string values = m.Value;
}
나는 아마도 데이터 집합이 매우 큰, 잘 모르겠어요합니다. 여기서 제공되는 솔루션의 대안은 정규 표현식과 일치하는 것을 찾는 것입니다. 나는 당신이 당신의 데이터 세트와 일치하는 완벽한 정규식을 생각해 낼 수있을 것이라고 확신하지만, 글자와 숫자가 포함 된 줄 끝과 결과가 일치해야한다. 비록 특수 문자가 필요하다면 특수 문자를 수정해야한다고 생각한다. 귀하의 데이터 세트에 포함되어 있습니다. 아래는 내가 의미하는 바를 알려줄 것입니다.
캡처 그룹이 잘못된 부분에 있습니다. 값 대신 레이블을 캡처 중입니다. 또한, .Matches() 대신에 .Match()를 사용하십시오; 첫 번째 경기 만 반환합니다. –
공간을 포함하여 전체 문자열을 읽지 마시고 공백을 제거한 다음 새 문자열을 저장하십시오. –
특수 문자가 있습니까? 그렇지 않다면 정규 표현식이 가장 큰 불필요한 반복을 없애주는 훌륭한 옵션이 될 수 있습니다. – clamchoda