CompareToIgnoreCase

Aus JACK Wiki
Zur Navigation springen Zur Suche springen

Beschreibung

Die Funktion compareToIgnoreCase bestimmt wie sehr zwei Zeichenketten lexikografisch voneinander abweichen. Im Gegensatz zu CompareTo werden dabei Groß- und Kleinschreibung nicht berücksichtigt. Die Funktion erwartet zwei Strings und gibt eine Zahl zurück.

Syntax

compareToIgnoreCase(String zeichenkette1, String zeichenkette2)

Parameter

  • zeichenkette1 - erste zu vergleichende Zeichenkette
  • zeichenkette2 - zweite zu vergleichende Zeichenkette

Return Value

  • Gibt eine Ganzzahl zurück

Beispiele

Standardfälle

compareToIgnoreCase('hallo','hallo')   --> returns 0
compareToIgnoreCase('hallo','JACK')   --> returns -2
compareToIgnoreCase('JACK','jack')   --> returns 0

Benutzung von Variablen

compareToIgnoreCase('[pos=1]','text')
compareToIgnoreCase('text','[var=a]')
compareToIgnoreCase('[var=a]','[pos=1]')

JUnit Tests

[Anzeigen]

@Before 
public void beforeTest() {
  placeFillInVariable(1, OMParser.parse("hallo"));
  placeExerciseVariable("a", OMParser.parse("hallo"));
}
	
@Test 
public void testCompareToIgnoreCase() {
  assertTrue(0 == getEvaluator().getNumberResult("compareToIgnoreCase('Hallo','HAlLo')"));
  assertTrue(0 == getEvaluator().getNumberResult("compareToIgnoreCase('Hallo','Hallo')"));
  assertTrue(0 == getEvaluator().getNumberResult("compareToIgnoreCase('jack','JACK')"));
  assertTrue(0 <  getEvaluator().getNumberResult("compareToIgnoreCase('paluno','JACK')"));
  assertTrue(0 >  getEvaluator().getNumberResult("compareToIgnoreCase('JACK','paluno')"));
  assertTrue(0 != getEvaluator().getNumberResult("compareToIgnoreCase('2x+2y','2*(x+y)')"));
}
	
@Test 
public void testCompareToIgnoreCaseWithInput() {
  assertTrue(0 >  getEvaluator().getNumberResult("compareToIgnoreCase('[pos=1]','Hello')"));
}
	
@Test 
public void testCompareToIgnoreCaseWithVariables() {
  assertTrue(0 >  getEvaluator().getNumberResult("compareToIgnoreCase('[var=a]','Hello')"));
}
	
@Test (expected=InvalidEvaluatorFunctionArgumentException.class)
public void testCompareToIgnoreCaseWithWrongInputCharacter() {
  getEvaluator().getNumberResult("compareToIgnoreCase(a,'hallo')");
}
	
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCompareToIgnoreCaseWithOneArgument() {
  getEvaluator().getNumberResult("compareToIgnoreCase('hallo')");
}

@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCompareToIgnoreCaseWithOneRationalAndOneTextArgument() {
  getEvaluator().getNumberResult("compareToIgnoreCase(12, 'hallo')");
}
	
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCompareToIgnoreCaseWithTwoRationalArguments() {
  getEvaluator().getNumberResult("compareToIgnoreCase(17, 8)");
}
	
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCompareToIgnoreCaseWithThreeArguments() {
  getEvaluator().getNumberResult("compareToIgnoreCase('hallo', 'hallo', 'hallo')");
}
	
@Test (expected=UndefinedExerciseVariableException.class)
public void testCompareToIgnoreCaseWithMissingExcerciseVariable() {
  getEvaluator().getNumberResult("compareToIgnoreCase('[var=j]', 'test')");
}
	
@Test (expected=UndefinedFillInVariableException.class)
public void testCompareToIgnoreCaseWithMissingInput() {
  getEvaluator().getNumberResult("compareToIgnoreCase('[pos=42]', 'test')");
}

Hinweise

  • Steht der erste String lexikografisch vor dem zweiten String, ist die Rückgabe negativ. Umgekehrt ist die Rückgabe entsprechend positiv.