Replace: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 16: Zeile 16:
====Standardfälle====
====Standardfälle====
  replace('Hello  World! ',' ','$')  --> returns 'Hello$$World!$'  
  replace('Hello  World! ',' ','$')  --> returns 'Hello$$World!$'  
  replace('Have a!nice day!','!',' ')  --> returns 'Have a nice day '
  replace('Have a!nice day!','!',' ')  --> returns 'Have a nice day '


==== Benutzung mit Variablen ====
==== Benutzung mit Variablen ====
  repalce('[pos=1]','a','t')
  repalce('[pos=1]','a','t')
  replace('Hallo','[var=a]','a')
  replace('Hallo','[var=a]','a')
====JUnit Tests====
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
@BeforeClass
public static void beforeTest() {
fillInVariableMap.put(7, OMConverter.toObject("<OMOBJ><OMSTR>HaveQaQniceQday</OMSTR></OMOBJ>"));
fillInVariableMap.put(8, OMConverter.toObject("<OMOBJ><OMSTR>a</OMSTR></OMOBJ>"));
fillInVariableMap.put(9, OMConverter.toObject("<OMOBJ><OMSTR>b</OMSTR></OMOBJ>"));
exerciseVariableMap.put("g", OMConverter.toObject("<OMOBJ><OMSTR>HaveQaQniceQday</OMSTR></OMOBJ>"));
exerciseVariableMap.put("h", OMConverter.toObject("<OMOBJ><OMSTR>a</OMSTR></OMOBJ>"));
exerciseVariableMap.put("i", OMConverter.toObject("<OMOBJ><OMSTR>b</OMSTR></OMOBJ>"));
}
@Test
public void testReplace1() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("Hello$$World!$")),
Evaluator.evaluate("replace('Hello  World! ', ' ', '$')", exerciseVariableMap, fillInVariableMap));
}
@Test
public void testReplace2() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("Have a nice day ")),
Evaluator.evaluate("replace('Have a nice day!', '!', ' ')", exerciseVariableMap, fillInVariableMap));
}
@Test
public void testReplace3() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("1010101")),
Evaluator.evaluate("replace('a0a0a0a', 'a', '1')", exerciseVariableMap, fillInVariableMap));
}
@Test
public void testReplace4() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("`0`0`0`")),
Evaluator.evaluate("replace('a0a0a0a', 'a', '`')", exerciseVariableMap, fillInVariableMap));
}
@Test
public void testReplaceWithInput1() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("Have a nice day")),
Evaluator.evaluate("replace('[pos=7]', 'Q', ' ')", exerciseVariableMap, fillInVariableMap));
}
@Test
public void testReplaceWithInput2() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("H veQ QniceQd y")),
Evaluator.evaluate("replace('[pos=7]', '[pos=8]', ' ')", exerciseVariableMap, fillInVariableMap));
}
@Test
public void testReplaceWithInput3() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("HbveQbQniceQdby")),
Evaluator.evaluate("replace('[pos=7]', '[pos=8]', '[pos=9]')", exerciseVariableMap, fillInVariableMap));
}
@Test
public void testReplaceWithVariables1() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("Have a nice day")),
Evaluator.evaluate("replace('[var=g]', 'Q', ' ')", exerciseVariableMap, fillInVariableMap));
}
@Test
public void testReplaceWithVariables2() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("H veQ QniceQd y")),
Evaluator.evaluate("replace('[var=g]', '[var=h]', ' ')", exerciseVariableMap, fillInVariableMap));
}
@Test
public void testReplaceWithVariables3() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("HbveQbQniceQdby")),
Evaluator.evaluate("replace('[var=g]', '[var=h]', '[var=i]')", exerciseVariableMap, fillInVariableMap));
}
@Test
public void testReplaceWithCharacterMaxMinValue1() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("" + cMax + "0")),
Evaluator.evaluate("replace('a0', 'a', '" + cMax + "')", exerciseVariableMap, fillInVariableMap));
}
@Test
public void testReplaceWithCharacterMaxMinValue2() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("" + cMin + "0")),
Evaluator.evaluate("replace('a0', 'a', '" + cMin + "')", exerciseVariableMap, fillInVariableMap));
}
@Test
public void testReplaceWithWrongInputSecondArgumentEmpty() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("aaaaa")),
Evaluator.evaluate("replace('aa', '', 'a')", exerciseVariableMap, fillInVariableMap));
}
@Test
public void testReplaceWithThirdArgumentEmpty() {
assertEquals(OMCreator.createOMOBJ(OMCreator.createOMSTR("a")),
Evaluator.evaluate("replace('a ', ' ', '')", exerciseVariableMap, fillInVariableMap));
}
@Test(expected = ParserException.class)
public void testReplaceWithWrongInputCharacter() {
Evaluator.evaluate("replace(ab, ab, ab)", exerciseVariableMap, fillInVariableMap);
fail();
}
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testReplaceWithOneArgument() {
Evaluator.evaluate("replace('a')", exerciseVariableMap, fillInVariableMap);
fail();
}
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testReplaceWithTwoArguments() {
Evaluator.evaluate("replace('a', 'b')", exerciseVariableMap, fillInVariableMap);
fail();
}
@Test(expected = UndefinedExerciseVariableException.class)
public void testReplaceWithMissingExerciseVariable() {
Evaluator.evaluate("replace('[var=j]', '[var=j]', '[var=j]')", exerciseVariableMap, fillInVariableMap);
fail();
}
@Test(expected = UndefinedFillInVariableException.class)
public void testReplaceWithMissingInput() {
Evaluator.evaluate("replace('[pos=42]', '[pos=42]', '[pos=42]')", exerciseVariableMap, fillInVariableMap);
fail();
}
</syntaxhighlight>


=== Hinweise ===
=== Hinweise ===


[[Kategorie:Evaluatorfunktion]][[Kategorie:Zeichenkettenfunktionen]]
[[Kategorie:Evaluatorfunktion]][[Kategorie:Zeichenkettenfunktionen]]

Version vom 25. September 2018, 09:16 Uhr

Beschreibung

Die Funktion replace ersetzt alle entsprechenden Zeichen einer Zeichenkette durch ein angegebenes Zeichen. Die Funktion benötigt eine Zeichenkette, ein zu ersetzendes Zeichen und ein Zeichen, durch das alle zu ersetzende Zeichen in der Zeichenkette ausgetauscht werden. Alternativ kann der zweite Parameter ein Java Regex sein bzw. ein String und, sowie der dritte Parameter ein String.

Syntax

replace(Zeichenkette zeichenkette1, Zeichenkette zeichenkette2, Zeichenkette austauschZeichenkette)

Parameter

  • zeichenkette1 - die Zeichenkette, in der Zeichen ausgetausch werden sollen
  • zeichenkette2 - die Zeichenkette, die ausgetauscht werden soll bzw. Regex/String
  • austauschZeichenkette - die Zeichenkette, durch die die anderen ausgetauscht werden soll

Return Value

Beispiele

Standardfälle

replace('Hello  World! ',' ','$')   --> returns 'Hello$$World!$' 

replace('Have a!nice day!','!',' ')   --> returns 'Have a nice day '

Benutzung mit Variablen

repalce('[pos=1]','a','t')

replace('Hallo','[var=a]','a')

Hinweise