PlotSquared/src/main/java/com/intellectualcrafters/plot/util/StringMan.java

44 lines
1.5 KiB
Java
Raw Normal View History

2015-07-05 17:44:10 +02:00
package com.intellectualcrafters.plot.util;
import java.util.Map;
import java.util.Map.Entry;
public class StringMan {
public static String replaceFromMap(String string, Map<String, String> replacements) {
StringBuilder sb = new StringBuilder(string);
2015-07-17 12:48:13 +02:00
int size = string.length();
2015-07-05 17:44:10 +02:00
for (Entry<String, String> entry : replacements.entrySet()) {
2015-07-17 12:48:13 +02:00
if (size == 0) {
break;
}
2015-07-05 17:44:10 +02:00
String key = entry.getKey();
String value = entry.getValue();
int start = sb.indexOf(key, 0);
while (start > -1) {
int end = start + key.length();
int nextSearchStart = start + value.length();
sb.replace(start, end, value);
2015-07-17 12:48:13 +02:00
size -= end - start;
2015-07-05 17:44:10 +02:00
start = sb.indexOf(key, nextSearchStart);
}
}
return sb.toString();
}
2015-07-16 16:44:27 +02:00
public static String replaceAll(String string, Object... pairs) {
2015-07-17 12:48:13 +02:00
StringBuilder sb = new StringBuilder(string);
2015-07-16 16:44:27 +02:00
for (int i = 0; i < pairs.length; i+=2) {
2015-07-17 12:48:13 +02:00
String key = pairs[i] + "";
String value = pairs[i + 1] + "";
int start = sb.indexOf(key, 0);
while (start > -1) {
int end = start + key.length();
int nextSearchStart = start + value.length();
sb.replace(start, end, value);
start = sb.indexOf(key, nextSearchStart);
}
2015-07-16 16:44:27 +02:00
}
2015-07-17 12:48:13 +02:00
return sb.toString();
2015-07-16 16:44:27 +02:00
}
2015-07-05 17:44:10 +02:00
}