changeset 1717:c637a2a1023d

add String.replace
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 25 Jul 2022 11:16:53 -0600
parents b82767112d8e
children 5603ee8e2a71
files conv.txt src/luan/modules/String.luan src/luan/modules/StringLuan.java src/luan/modules/mmake.luan website/src/manual.html.luan
diffstat 5 files changed, 21 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/conv.txt	Sun Jul 24 23:43:03 2022 -0600
+++ b/conv.txt	Mon Jul 25 11:16:53 2022 -0600
@@ -7,6 +7,7 @@
 String.contains
 String.starts_with
 String.ends_with
+String.replace
 
 
 rename_to
--- a/src/luan/modules/String.luan	Sun Jul 24 23:43:03 2022 -0600
+++ b/src/luan/modules/String.luan	Mon Jul 25 11:16:53 2022 -0600
@@ -20,6 +20,7 @@
 String.regex = Boot.regex
 String.regex_quote = Pattern.quote
 String.rep = StringLuan.rep
+String.replace = StringLuan.replace
 String.reverse = StringLuan.reverse
 String.split = StringLuan.split
 String.starts_with = StringLuan.starts_with
--- a/src/luan/modules/StringLuan.java	Sun Jul 24 23:43:03 2022 -0600
+++ b/src/luan/modules/StringLuan.java	Mon Jul 25 11:16:53 2022 -0600
@@ -262,4 +262,11 @@
 		return s.endsWith(s2);
 	}
 
+	public static String replace(String s,String target,String replacement) throws LuanException {
+		Utils.checkNotNull(s);
+		Utils.checkNotNull(target,2);
+		Utils.checkNotNull(replacement,3);
+		return s.replace(target,replacement);
+	}
+
 }
--- a/src/luan/modules/mmake.luan	Sun Jul 24 23:43:03 2022 -0600
+++ b/src/luan/modules/mmake.luan	Mon Jul 25 11:16:53 2022 -0600
@@ -5,7 +5,7 @@
 local print = Io.print
 local output_to = Io.output_to
 local String = require "luan:String.luan"
-local regex = String.regex
+local replace = String.replace
 local substring = String.sub
 local ends_with = String.ends_with
 local Time = require "luan:Time.luan"
@@ -46,9 +46,8 @@
 	end
 	local out = dir.child("Makefile").text_writer()
 	output_to(out,header)
-	local r = regex([[\$]])
 	for _, s in ipairs(javas) do
-		s = r.gsub(s,[[\$\$]])
+		s = replace(s,"$","$$")
 		out.write( "\\\n\t\t",  s , ".class" )
 	end
 	for _, s in ipairs(dirs) do
--- a/website/src/manual.html.luan	Sun Jul 24 23:43:03 2022 -0600
+++ b/website/src/manual.html.luan	Mon Jul 25 11:16:53 2022 -0600
@@ -2688,6 +2688,16 @@
 <%
 						end
 					}
+					["String.replace"] = {
+						title = "<code>String.replace (s, target, replacement)</code>"
+						content = function()
+%>
+<p>
+Returns a string where each substring <code>target</code> in <code>s</code> is replaced by <code>replacement</code>.
+</p>
+<%
+						end
+					}
 					["String.reverse"] = {
 						title = "<code>String.reverse (s)</code>"
 						content = function()