아래는 예제 문자열입니다. 아래의 4 개 문자열 예제에서 userId
은 항상 key
으로 표시됩니다. 내 아래 방법 그래서 지금 ID를 다른 문자열과 구분하거나 정규 표현식을 사용하여 일치 시키십시오.
{siteRebateSenstvty=0;1,1;2, siteRedemptChg=16;30,77;40, userId=101}
{sgmntId=1, userId=101}
{predictedCatRev=0;101;1,1;201;2, predictedOvrallRev=77;2,0;1,16;3, sitePrftblty=77;2,0;1671679, topByrGms=12345.67, usrCurncy=1, vbsTopByrGmb=167167.67, userId=101}
{zipCode=CA11 9QL, userId=101}
, 나는 내가
isStringValid method
에 문자열 ID를 전달하는 것,
id
와
str
값을 확인하려합니다.
private boolean isStringValid(String str, String id) {
boolean valid = false;
System.out.println(str);
return valid;
}
문제 성명 : -
는 지금은 위의 JSON String
에 userId value
와 id value
일치하는 것을 시도하고있다. 의미는 id value is 101
위의 경우 JSON String
userId
값도 101이어야합니다. 일치하지 않거나 문자열에 userId 값이 없으면 vaild boolean to false
을 설정합니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 이 101은 어떤 키의 일부 숫자로 존재 가능할 수 있기 때문에
나는 this-
if(str.contains(id))
처럼 할 수 없습니다. (첫 번째 예 101) ID가 항상 ;
,
또는 }
다음된다고 가정
아니가, 그것은 항상'다음 수없는 것,'','또는'}'. 내 네 번째 문자열 예제를 참조하십시오. 이전 키 값이 끝나자 마자 쉼표가 표시됩니다. 이렇게, -a, b, c와 같은 것 – AKIWEB
@ Nevzz03 나는 모든 예제에서 101이'}'에 이어짐을 잘 모르겠다. 내가 제안하는 정규 표현식은'userId = 101 '또는'userId = 101,'또는'userId = 101;'와 같이 보이면 id를 찾을 것입니다. 적용 할 수없는 경우','또는'; '를 제거 할 수 있습니다. – assylias
나는 항상 this = 'a = somevalue, b = somevalue, userId = 101'과 같은 String을 가질 것이다. – AKIWEB