Skip to content

Commit ca9012b

Browse files
committed
add str.translate(str)
1 parent a968ded commit ca9012b

File tree

1 file changed

+12
-0
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/str

1 file changed

+12
-0
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/str/StringBuiltins.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -608,6 +608,18 @@ public PDict maketrans(String from, String to,
608608
@Builtin(name = "translate", fixedNumOfArguments = 2)
609609
@GenerateNodeFactory
610610
public abstract static class TranslateNode extends PythonBuiltinNode {
611+
@Specialization
612+
public String translate(String self, String table) {
613+
char[] translatedChars = new char[self.length()];
614+
615+
for (int i = 0; i < self.length(); i++) {
616+
char original = self.charAt(i);
617+
char translation = table.charAt(original);
618+
translatedChars[i] = translation;
619+
}
620+
621+
return new String(translatedChars);
622+
}
611623

612624
@Specialization
613625
public String translate(String self, PDict table,

0 commit comments

Comments
 (0)