LastIndexOf: Unterschied zwischen den Versionen

Aus JACK Wiki
Wechseln zu: Navigation, Suche
(JUnit Tests)
 
(11 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
==Zugehörige Evaluatoren==
 +
*'''MathEvaluator'''
 
=== Beschreibung ===
 
=== Beschreibung ===
 
Die Funktion ''lastIndexOf'' bestimmt die Position an der eine Zeichenkette oder ein einzelnes Zeichen das letzte Mal innerhalb einer anderen Zeichenkette vorkommt. Außerdem muss angegeben werden, ab welcher Stelle innerhalb der durchsuchten Zeichenkette gesucht werden soll. Die Funktion erwartet zwei Strings, die zu durchsuchende und die zu suchende Zeichenkette, und eine Ganzzahl, bis zu welcher Stelle die Suche durchgeführt werden soll. Es wird eine Ganzzahl zurückgegeben.
 
Die Funktion ''lastIndexOf'' bestimmt die Position an der eine Zeichenkette oder ein einzelnes Zeichen das letzte Mal innerhalb einer anderen Zeichenkette vorkommt. Außerdem muss angegeben werden, ab welcher Stelle innerhalb der durchsuchten Zeichenkette gesucht werden soll. Die Funktion erwartet zwei Strings, die zu durchsuchende und die zu suchende Zeichenkette, und eine Ganzzahl, bis zu welcher Stelle die Suche durchgeführt werden soll. Es wird eine Ganzzahl zurückgegeben.
  
 
=== Syntax ===
 
=== Syntax ===
  lastIndexOf(String zeichenkette, String muster, int position)
+
  lastIndexOf([[Zeichenkette]] zeichenkette, [[Zeichenkette]] muster, [ [[Ganzzahl]] position])
  
 
=== Parameter ===
 
=== Parameter ===
* '''zeichenkette''' - Zeichenkette in dem gesucht wird
+
* '''zeichenkette''' - Zeichenkette in der gesucht wird
 
* '''muster''' - Zeichenkette, die innnerhalb der ersten gesucht wird
 
* '''muster''' - Zeichenkette, die innnerhalb der ersten gesucht wird
* '''position''' - Endpositition der Suche
+
* '''position''' - Endpositition der Suche - '''optional''' (default=length)
  
 
=== Return Value ===
 
=== Return Value ===
* Gibt eine Ganzzahl zurück
+
* Gibt eine [[Ganzzahl]] zurück
  
 
=== Beispiele ===
 
=== Beispiele ===
 
==== Standardfälle ====
 
==== Standardfälle ====
 
  lastIndexOf('Hello World!','o',0)  --> returns -1
 
  lastIndexOf('Hello World!','o',0)  --> returns -1
 +
 
  lastIndexOf('Hello World!','o',6)  --> returns 4
 
  lastIndexOf('Hello World!','o',6)  --> returns 4
 +
 +
lastIndexOf('Hello World!','o')  --> returns 7
  
 
==== Benutzung von Variablen ====
 
==== Benutzung von Variablen ====
  lastIndexOf('[pos=1]','x',10)
+
  lastIndexOf([pos=1],'x',10)
  lastIndexOf('text','[var=a]',4)
+
  lastIndexOf('[var=b]','x',[pos=2])
+
  lastIndexOf('text',[var=a],4)
 
+
====JUnit Tests====
+
  lastIndexOf([var=b],'x',[pos=2])
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
 
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
 
@Before
 
public void beforeTest(){
 
  placeExerciseVariable("a", OMParser.parse("oneString"));
 
  placeExerciseVariable("b", OMParser.parse("b"));
 
 
  placeFillInVariable(1, OMParser.parse("oneString"));
 
  placeFillInVariable(2, OMParser.parse("b"));
 
}
 
 
@Test
 
public void testLastIndexOf(){
 
  assertTrue(4 == getEvaluator().getNumberResult("lastIndexOf('abbbb','b',5)"));
 
  assertTrue(0 == getEvaluator().getNumberResult("lastIndexOf('cabade','c',10)"));
 
  assertTrue(-1 == getEvaluator().getNumberResult("lastIndexOf('cabade','test',10)"));
 
 
  assertTrue(6 == getEvaluator().getNumberResult("lastIndexOf('he  llo','lo',7)"));
 
  assertTrue(0 == getEvaluator().getNumberResult("lastIndexOf('','',0)"));
 
}
 
 
 
@Test
 
public void testLastIndexOfWithInput(){
 
  assertTrue(3 == getEvaluator().getNumberResult("lastIndexOf('[pos=1]','S',7)"));
 
  assertTrue(4 == getEvaluator().getNumberResult("lastIndexOf('abbbb','[pos=2]',5)"));
 
}
 
 
@Test
 
public void testLastIndexOfWithVariable(){
 
  assertTrue(3 == getEvaluator().getNumberResult("lastIndexOf('[var=a]','S',7)"));
 
  assertTrue(4 == getEvaluator().getNumberResult("lastIndexOf('abbbb','[var=b]',5)"));
 
}
 
 
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
 
public void testLastIndexOfWithWrongInputCharacter(){
 
  getEvaluator().getNumberResult("lastIndexOf(a, a, a)");
 
}
 
 
@Test(expected=UnsupportedEvaluatorFunctionException.class)
 
public void testLastIndexOfWithOneArgument(){
 
  getEvaluator().getNumberResult("lastIndexOf('abab')");
 
}
 
 
@Test(expected=UnsupportedEvaluatorFunctionException.class)
 
public void testLastIndexOfWithTwoArguments(){
 
  getEvaluator().getNumberResult("lastIndexOf('abab', 'ab')");
 
}
 
 
@Test(expected=UndefinedExerciseVariableException.class)
 
public void testLastIndexOfWithMissingExerciseVariable(){
 
  getEvaluator().getNumberResult("lastIndexOf('[var=j]', '[var=j]', '[var=j]')");
 
}
 
 
@Test(expected=UndefinedFillInVariableException.class)
 
public void testLastIndexOfWithMissingInput(){
 
  getEvaluator().getNumberResult("lastIndexOf('[pos=42]', '[pos=42]', '[pos=42]')");
 
}
 
</syntaxhighlight>
 
  
 
=== Hinweise ===
 
=== Hinweise ===
Zeile 87: Zeile 34:
 
* Sollte die gesuchte Zeichenkette nicht gefunden werden, gibt die Funktion -1 zurück.
 
* Sollte die gesuchte Zeichenkette nicht gefunden werden, gibt die Funktion -1 zurück.
  
[[Kategorie:Evaluatorfunktion]]
+
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Zeichenkettenfunktionen]]

Aktuelle Version vom 10. Dezember 2018, 12:00 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion lastIndexOf bestimmt die Position an der eine Zeichenkette oder ein einzelnes Zeichen das letzte Mal innerhalb einer anderen Zeichenkette vorkommt. Außerdem muss angegeben werden, ab welcher Stelle innerhalb der durchsuchten Zeichenkette gesucht werden soll. Die Funktion erwartet zwei Strings, die zu durchsuchende und die zu suchende Zeichenkette, und eine Ganzzahl, bis zu welcher Stelle die Suche durchgeführt werden soll. Es wird eine Ganzzahl zurückgegeben.

Syntax

lastIndexOf(Zeichenkette zeichenkette, Zeichenkette muster, [ Ganzzahl position])

Parameter

  • zeichenkette - Zeichenkette in der gesucht wird
  • muster - Zeichenkette, die innnerhalb der ersten gesucht wird
  • position - Endpositition der Suche - optional (default=length)

Return Value

Beispiele

Standardfälle

lastIndexOf('Hello World!','o',0)   --> returns -1

lastIndexOf('Hello World!','o',6)   --> returns 4

lastIndexOf('Hello World!','o')   --> returns 7

Benutzung von Variablen

lastIndexOf([pos=1],'x',10)

lastIndexOf('text',[var=a],4)

lastIndexOf([var=b],'x',[pos=2])

Hinweise

  • Die Nummerierung innerhalb der Zeichenkette beginnt mit 0.
  • Sollte die gesuchte Zeichenkette nicht gefunden werden, gibt die Funktion -1 zurück.