Replace: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=== Zugehörige Evaluatoren ===
*'''MathEvaluator'''
=== Beschreibung ===
=== 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.
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 ===
=== Syntax ===
  replace(String zeichenkette, Char zeichen, Char austauschZeichen)
  replace([[Zeichenkette]] zeichenkette1, [[Zeichenkette]] zeichenkette2, [[Zeichenkette]] austauschZeichenkette)


===Parameter ===
=== Parameter ===
* '''zeichenkette''' - die Zeichenkette, in der Zeichen ausgetausch werden sollen
* '''zeichenkette1''' - die Zeichenkette, in der Zeichen ausgetausch werden sollen
* '''zeichen''' - das Zeichen, das ausgetauscht werden soll
* '''zeichenkette2''' - die Zeichenkette, die ausgetauscht werden soll bzw. Regex/String
* '''austauschZeichen''' - das Zeichen, durch das die anderen ausgetauscht werden.
* '''austauschZeichenkette''' - die Zeichenkette, durch die die anderen ausgetauscht werden soll


=== Return Value ===
=== Return Value ===
* Gibt einen String zurück
* Gibt eine [[Zeichenkette]] zurück


=== Beispiele ===
=== Beispiele ===
====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 ====
replace('Hallo','[var=a]','a')
==== Benutzung mit studentischen Eingaben ====
'''JACK2:'''
  repalce('[pos=1]','a','t')
  repalce('[pos=1]','a','t')
replace('Hallo','[var=a]','a')


====JUnit Tests====
  '''JACK3:'''
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed">
repalce([input=field1],'a','t')
private char cMax = Character.MAX_VALUE;
private char cMin = Character.MIN_VALUE;
@Before
public void beforeTest(){
  placeFillInVariable(1, OMParser.parse("HaveQaQniceQday"));
  placeFillInVariable(2, OMParser.parse("a"));
  placeFillInVariable(3, OMParser.parse("b"));
  placeExerciseVariable("a", OMParser.parse("HaveQaQniceQday"));
  placeExerciseVariable("b", OMParser.parse("a"));
  placeExerciseVariable("c", OMParser.parse("b"));
}
@Test
public void testReplace(){
  assertTrue("'Hello$$World!$'".equals(getEvaluator().getResultAsEvaluatorString("replace('Hello World! ', ' ', '$')")));
  assertTrue("'Have a nice day '".equals(getEvaluator().getResultAsEvaluatorString("replace('Have a nice day!', '!', ' ')")));
  assertTrue("'1010101'".equals(getEvaluator().getResultAsEvaluatorString("replace('a0a0a0a', 'a', '1'))")));
  assertTrue("'`0`0`0`'".equals(getEvaluator().getResultAsEvaluatorString("replace('a0a0a0a', 'a', '`'))")));
}
@Test
public void testReplaceWithInput(){
  assertTrue("'Have a nice day'".equals(getEvaluator().getResultAsEvaluatorString("replace('[pos=1]', 'Q', ' ')")));
  assertTrue("'H veQ QniceQd y'".equals(getEvaluator().getResultAsEvaluatorString("replace('[pos=1]', '[pos=2]', ' ')")));
  assertTrue("'HbveQbQniceQdby'".equals(getEvaluator().getResultAsEvaluatorString("replace('[pos=1]', '[pos=2]', '[pos=3]')")));
}
@Test
public void testReplaceWithVariables(){
  assertTrue("'Have a nice day'".equals(getEvaluator().getResultAsEvaluatorString("replace('[var=a]', 'Q', ' ')")));
  assertTrue("'H veQ QniceQd y'".equals(getEvaluator().getResultAsEvaluatorString("replace('[var=a]', '[var=b]', ' ')")));
  assertTrue("'HbveQbQniceQdby'".equals(getEvaluator().getResultAsEvaluatorString("replace('[var=a]', '[var=b]', '[var=c]')")));
}
@Test
public void testReplaceWithCharacterMaxMinValue(){
  assertTrue(("'" + cMax + "0'").equals(getEvaluator().getResultAsEvaluatorString("replace('a0', 'a', '" + cMax + "'))")));
  assertTrue(("'" + cMin + "0'").equals(getEvaluator().getResultAsEvaluatorString("replace('a0', 'a', '" + cMin + "'))")));
}
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testReplaceWithWrongInputSecondArgumentEmpty(){
  getEvaluator().getResultAsEvaluatorString("replace('a', '', 'a')");
}
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void tesReplaceWithWrongInputThirdArgumentEmpty(){
  getEvaluator().getResultAsEvaluatorString("replace('a ', ' ', '')");
}
@Test(expected=InvalidEvaluatorFunctionArgumentException.class)
public void testReplaceWithWrongInputCharacter(){
  getEvaluator().getResultAsEvaluatorString("replace(a, a, a)");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testReplaceWithOneArgument(){
  getEvaluator().getResultAsEvaluatorString("replace('a')");
}
@Test(expected=UnsupportedEvaluatorFunctionException.class)
public void testReplaceWithTwoArguments(){
  getEvaluator().getResultAsEvaluatorString("replace('a', 'b')");
}
@Test(expected=UndefinedExerciseVariableException.class)
public void testReplaceWithMissingExerciseVariable(){
  getEvaluator().getResultAsEvaluatorString("replace('[var=j]', '[var=j]', '[var=j]')");
}
@Test(expected=UndefinedFillInVariableException.class)
public void testReplaceWithMissingInput(){
  getEvaluator().getResultAsEvaluatorString("replace('[pos=42]', '[pos=42]', '[pos=42]')");
}
</syntaxhighlight>
=== Hinweise ===


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

Aktuelle Version vom 17. April 2024, 09:10 Uhr

Zugehörige Evaluatoren

  • MathEvaluator

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

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

Benutzung mit studentischen Eingaben

JACK2:
repalce('[pos=1]','a','t')
JACK3:
repalce([input=field1],'a','t')