2013-03-12 6 views
0

텍스트 상자가있는 웹 응용 프로그램을 개발 중입니다. 사용자는 "문자열"에 특정 색상을 표시하는 조건을 입력합니다. 이 문자열은 일부 정수 값을 보유합니다.사용자 표현 평가

사용자는이 하나 개의 조건이

>30:"Red" 
<20:"Green" 
:"Yellow: 

이다,이 같은 문자열 값에 대한 조건을 지정합니다. if, elseif, else 조건과 같습니다. 사용자는 다른 사람이

>60:"Blue" 
:"White" 

(60보다 큰 문자열 값이 다음 다른 문자열의 색상으로 "블루"를 얻는 경우 의미 "화이트"문자열의 색입니다)

같은 조건 같은 경우에만 지정할 수 있습니다

각 문자열의 입력란에 입력 한 위의 조건에 따라 문자열의 색상을 평가해야합니다. 값이있는 수천 개의 문자열이 있고 사용자는 각 문자열에 대해 이러한 표현식을 입력합니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

+0

나는 각각의 표현 어셈블리를 생성 및 표현을 평가하기 위해 런타임에 그들을로드하지만 거기에 너무 많은 조립품에이 표현을 평가하기 위해 런타임에로드하기 때문에 선도하고 있습니다 메모리 문제. – PSR

+1

이 문자열을 먼저 구문 분석하고, 토큰 화하고, 스스로 조건을 빌드해야합니다. – TalentTuner

답변

0
String input = getTextBoxInput() // get input from text box 
if(input.contains("<") || input.contains("<")) 
{ 
    if(input.contains("<")) 
    { 
     int index = input.indexOf("<"); 
     String conditionString = input.substring(index+1,input.length()); 
     // condition number is the number being compared 
     int conditionNumber = conditionString.split(":")[0]; 
     // if condition is true then get the corresponding colour 
     if(number < conditionNumber){setColor(conditionString.split(":")[1])} 
     // check if it an if else condition and do the following 
     else if(input.length()>1){ setColor(conditionString.split(":")[2])} 
    } 
} 

이것은 기본적인 의사 코드입니다. "<"및 ">"에 대한 상수를 정의 할 수 있습니다. 또한 잘못된 입력이 있으면 예외 처리를해야 할 수도 있습니다.