CharAt: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 18: | Zeile 18: | ||
charAt('JACK','3') --> returns K | charAt('JACK','3') --> returns K | ||
====JUnit Tests==== | |||
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed"> | |||
@Before | |||
public void beforeTest() { | |||
placeFillInVariable(1, OMParser.parse("W")); | |||
placeExerciseVariable("a", OMParser.parse("W")); | |||
} | |||
@Test | |||
public void testCharAt() { | |||
assertTrue("'o'".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',4)"))); | |||
assertTrue("'W'".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',6)"))); | |||
assertTrue("' '".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',5)"))); | |||
assertTrue("'!'".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',11)"))); | |||
assertTrue("'1'".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',12)"))); | |||
} | |||
@Test (expected=StringIndexOutOfBoundsException.class) | |||
public void testCharAtOutOfBoundsIndexNegative() { | |||
getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',-1)"); | |||
} | |||
@Test (expected=StringIndexOutOfBoundsException.class) | |||
public void testCharAtOutOfBoundsIndexToHigh() { | |||
getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',55)"); | |||
} | |||
@Test | |||
public void testCharAtWithInput() { | |||
assertTrue("'W'".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello [pos=1]orld!1',6)"))); | |||
} | |||
@Test | |||
public void testCharAtWithVariables() { | |||
assertTrue("'W'".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello [var=a]orld!1',6)"))); | |||
} | |||
@Test | |||
public void testCharAtWithExpressions() { | |||
assertTrue("'b'".equals(getEvaluator().getResultAsEvaluatorString("charAt(charAt('abc', 1), 0)"))); | |||
assertTrue("'a'".equals(getEvaluator().getResultAsEvaluatorString("charAt('abc', charAt('00', 0))"))); | |||
} | |||
@Test (expected=InvalidEvaluatorFunctionArgumentException.class) | |||
public void testCharAtWithWrongInputCharacter() { | |||
getEvaluator().getResultAsEvaluatorString("charAt('abcd', a)"); | |||
} | |||
@Test (expected=UnsupportedEvaluatorFunctionException.class) | |||
public void testCharAtWithOneArgument() { | |||
getEvaluator().getResultAsEvaluatorString("charAt('abcd')"); | |||
} | |||
@Test (expected=UnsupportedEvaluatorFunctionException.class) | |||
public void testCharAtWithThreeArguments() { | |||
getEvaluator().getResultAsEvaluatorString("charAt('abcd', 0, 2)"); | |||
} | |||
@Test (expected=UnsupportedEvaluatorFunctionException.class) | |||
public void testCharAtWithTwoRationalArguments() { | |||
getEvaluator().getResultAsEvaluatorString("charAt(5, 12)"); | |||
} | |||
@Test (expected=UnsupportedEvaluatorFunctionException.class) | |||
public void testCharAtWithTwoTextArguments() { | |||
getEvaluator().getResultAsEvaluatorString("charAt('abc', '1')"); | |||
} | |||
@Test (expected=UndefinedExerciseVariableException.class) | |||
public void testCharAtWithMissingExcerciseVariable() { | |||
getEvaluator().getResultAsEvaluatorString("charAt('[var=j]', 2)"); | |||
} | |||
@Test (expected=UndefinedFillInVariableException.class) | |||
public void testCharAtWithMissingInput() { | |||
getEvaluator().getResultAsEvaluatorString("charAt('[pos=42]', 2)"); | |||
} | |||
</syntaxhighlight> | |||
=== Hinweise === | === Hinweise === |
Version vom 20. Juni 2017, 15:31 Uhr
Beschreibung
Die Funktion charAt gibt das Zeichen an einer beliebigen Stelle innerhalb einer Zeichenkette zurück. Das erste Zeichen hat dabei den Index 0, das zweite Zeichen den Index 1 usw.
Die Funktion erwartet eine Zeichenkette und eine natürliche Zahl und gibt das Zeichen an der entsprechenden Stelle zurück.
Syntax
charAt(String zeichenkette, int stelle)
Parameter
- zeichenkette - die Zeichenkette, aus der das Zeichen bestimmt wird
- stelle - das wievielte Zeichen zurückgegeben werden soll
Return Value
- Gibt eine Character zurück.
Beispiele
charAt('hallo','0') --> returns h
charAt('JACK','3') --> returns K
JUnit Tests
@Before
public void beforeTest() {
placeFillInVariable(1, OMParser.parse("W"));
placeExerciseVariable("a", OMParser.parse("W"));
}
@Test
public void testCharAt() {
assertTrue("'o'".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',4)")));
assertTrue("'W'".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',6)")));
assertTrue("' '".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',5)")));
assertTrue("'!'".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',11)")));
assertTrue("'1'".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',12)")));
}
@Test (expected=StringIndexOutOfBoundsException.class)
public void testCharAtOutOfBoundsIndexNegative() {
getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',-1)");
}
@Test (expected=StringIndexOutOfBoundsException.class)
public void testCharAtOutOfBoundsIndexToHigh() {
getEvaluator().getResultAsEvaluatorString("charAt('Hello World!1',55)");
}
@Test
public void testCharAtWithInput() {
assertTrue("'W'".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello [pos=1]orld!1',6)")));
}
@Test
public void testCharAtWithVariables() {
assertTrue("'W'".equals(getEvaluator().getResultAsEvaluatorString("charAt('Hello [var=a]orld!1',6)")));
}
@Test
public void testCharAtWithExpressions() {
assertTrue("'b'".equals(getEvaluator().getResultAsEvaluatorString("charAt(charAt('abc', 1), 0)")));
assertTrue("'a'".equals(getEvaluator().getResultAsEvaluatorString("charAt('abc', charAt('00', 0))")));
}
@Test (expected=InvalidEvaluatorFunctionArgumentException.class)
public void testCharAtWithWrongInputCharacter() {
getEvaluator().getResultAsEvaluatorString("charAt('abcd', a)");
}
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCharAtWithOneArgument() {
getEvaluator().getResultAsEvaluatorString("charAt('abcd')");
}
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCharAtWithThreeArguments() {
getEvaluator().getResultAsEvaluatorString("charAt('abcd', 0, 2)");
}
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCharAtWithTwoRationalArguments() {
getEvaluator().getResultAsEvaluatorString("charAt(5, 12)");
}
@Test (expected=UnsupportedEvaluatorFunctionException.class)
public void testCharAtWithTwoTextArguments() {
getEvaluator().getResultAsEvaluatorString("charAt('abc', '1')");
}
@Test (expected=UndefinedExerciseVariableException.class)
public void testCharAtWithMissingExcerciseVariable() {
getEvaluator().getResultAsEvaluatorString("charAt('[var=j]', 2)");
}
@Test (expected=UndefinedFillInVariableException.class)
public void testCharAtWithMissingInput() {
getEvaluator().getResultAsEvaluatorString("charAt('[pos=42]', 2)");
}
Hinweise
- Die angegebene Zahl darf nicht kleiner als 0 und nicht größer als die Länge der Zeichenkette -1 sein.