From 2ca75d50e6e49d6a78161ef2ad50f6a481fabd1b Mon Sep 17 00:00:00 2001 From: Joel Dice Date: Thu, 13 Sep 2007 21:12:51 -0600 Subject: [PATCH] implement a few more classpath methods --- classpath/java/lang/String.java | 40 ++++++++++++++++++++++++++ classpath/java/text/MessageFormat.java | 15 +++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/classpath/java/lang/String.java b/classpath/java/lang/String.java index 47fbbb9af7..3c72ee92e3 100644 --- a/classpath/java/lang/String.java +++ b/classpath/java/lang/String.java @@ -336,6 +336,46 @@ public final class String implements Comparable { } } + public String[] split(String s) { + String[] array = new String[(length / s.length) + 1]; + int index = 0; + int last = 0; + int position = 0; + for (int i = 0; i < length - s.length + 1;) { + int j; + for (j = 0; j < s.length; ++j) { + if (charAt(i + j) != s.charAt(j)) { + break; + } + } + + if (j == s.length) { + if (i > 0) { + if (i > position) { + last = index; + } + array[index++] = substring(position, i); + } + i = position = i + s.length; + } else { + ++ i; + } + } + + if (position < length) { + last = index; + array[index] = substring(position, length); + } + + if (last + 1 < array.length) { + String[] a = new String[last + 1]; + System.arraycopy(array, 0, a, 0, last + 1); + array = a; + } + + return array; + } + public native String intern(); public static String valueOf(Object s) { diff --git a/classpath/java/text/MessageFormat.java b/classpath/java/text/MessageFormat.java index b61a311e20..fcfed44361 100644 --- a/classpath/java/text/MessageFormat.java +++ b/classpath/java/text/MessageFormat.java @@ -15,11 +15,24 @@ public class MessageFormat extends Format { this(pattern, Locale.getDefault()); } - public StringBuffer format(Object o, StringBuffer target, FieldPosition p) { + public StringBuffer format(Object[] args, StringBuffer target, + FieldPosition p) + { // todo return target.append(pattern); } + public StringBuffer format(Object args, StringBuffer target, FieldPosition p) + { + return format((Object[]) args, target, p); + } + + public static String format(String pattern, Object ... args) { + return new MessageFormat + (pattern).format(args, new StringBuffer(), new FieldPosition(0)) + .toString(); + } + public void applyPattern(String pattern) { this.pattern = pattern; }