CompareToIgnoreCase: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
(12 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
=== Beschreibung ===
=== 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.
Die Funktion ''compareToIgnoreCase'' bestimmt wie sehr zwei Zeichenketten lexikografisch voneinander abweichen. Hier wird nicht zwischen Groß- und Kleinschreibung unterschieden. Die Funktion erwartet zwei Strings und gibt eine Zahl zurück.


=== Syntax ===
=== Syntax ===
  compareToIgnoreCase(String zeichenkette1, String zeichenkette2)
  compareToIgnoreCase([[Zeichenkette]] zeichenkette1, [[Zeichenkette]] zeichenkette2)


=== Parameter ===
=== Parameter ===
Zeile 15: Zeile 18:
==== Standardfälle ====
==== Standardfälle ====
  compareToIgnoreCase('hallo','hallo')  --> returns 0
  compareToIgnoreCase('hallo','hallo')  --> returns 0
  compareToIgnoreCase('hallo','JACK')  --> returns -2
  compareToIgnoreCase('hallo','JACK')  --> returns -2
  compareToIgnoreCase('JACK','jack')  --> returns 0
  compareToIgnoreCase('JACK','jack')  --> returns 0


==== Benutzung von Variablen ====
==== Benutzung mit Variablen ====
 
compareToIgnoreCase('text', [var=a])
compareToIgnoreCase([var=a], [var=b])
 
==== Benutzung mit studentischen Eingaben ====
 
'''Jack2:'''
  compareToIgnoreCase('[pos=1]','text')
  compareToIgnoreCase('[pos=1]','text')
compareToIgnoreCase('text','[var=a]')
  compareToIgnoreCase('[var=a]','[pos=1]')
  compareToIgnoreCase('[var=a]','[pos=1]')


====JUnit Tests====
  '''Jack3:'''
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
  compareToIgnoreCase([input=field1], 'text')
@Before
  compareToIgnoreCase([var=a], [input=field1]')
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')");
}
</syntaxhighlight>


=== Hinweise ===
=== Hinweise ===
* Steht der erste String lexikografisch vor dem zweiten String, ist die Rückgabe negativ. Umgekehrt ist die Rückgabe entsprechend positiv.
* Steht der erste String lexikografisch vor dem zweiten String, ist die Rückgabe negativ. Umgekehrt ist die Rückgabe entsprechend positiv.
* Bei der Funktion [[compareTo]] wird zwischen Groß- und Kleinschreibung unterschieden.
* Wenn Variablen genutzt werden muss darauf geachtet werden, dass diese die Voraussetzung erfüllen.
* Wenn die Eingabe der Studierenden genutzt wird muss auch hier darauf geachtet werden, dass die Voraussetzungen erfüllt sind und ob diese an der Stelle genutzt werden können.


[[Kategorie:Evaluatorfunktion]]
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Zeichenkettenfunktionen]][[Kategorie:JACK2]][[Kategorie:JACK3]]

Aktuelle Version vom 15. April 2024, 12:32 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion compareToIgnoreCase bestimmt wie sehr zwei Zeichenketten lexikografisch voneinander abweichen. Hier wird nicht zwischen Groß- und Kleinschreibung unterschieden. Die Funktion erwartet zwei Strings und gibt eine Zahl zurück.

Syntax

compareToIgnoreCase(Zeichenkette zeichenkette1, Zeichenkette 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 mit Variablen

compareToIgnoreCase('text', [var=a])
compareToIgnoreCase([var=a], [var=b]) 

Benutzung mit studentischen Eingaben

Jack2:
compareToIgnoreCase('[pos=1]','text')
compareToIgnoreCase('[var=a]','[pos=1]')
Jack3:
compareToIgnoreCase([input=field1], 'text')
compareToIgnoreCase([var=a], [input=field1]')

Hinweise

  • Steht der erste String lexikografisch vor dem zweiten String, ist die Rückgabe negativ. Umgekehrt ist die Rückgabe entsprechend positiv.
  • Bei der Funktion compareTo wird zwischen Groß- und Kleinschreibung unterschieden.
  • Wenn Variablen genutzt werden muss darauf geachtet werden, dass diese die Voraussetzung erfüllen.
  • Wenn die Eingabe der Studierenden genutzt wird muss auch hier darauf geachtet werden, dass die Voraussetzungen erfüllt sind und ob diese an der Stelle genutzt werden können.