mirror of
https://github.com/Eaglercraft-TeaVM-Fork/eagler-teavm.git
synced 2024-12-22 08:14:09 -08:00
Implements som java.lang.String methods
This commit is contained in:
parent
4767ab07cb
commit
d05b9434d9
|
@ -164,4 +164,30 @@ public class StringTests {
|
||||||
public void replacesCharacter() {
|
public void replacesCharacter() {
|
||||||
assertEquals("abbdbbd", "abcdbcd".replace('c', 'b'));
|
assertEquals("abbdbbd", "abcdbcd".replace('c', 'b'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void containsWorks() {
|
||||||
|
assertTrue("abcd".contains("bc"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void sequenceReplaced() {
|
||||||
|
assertEquals("ba", "aaa".replace("aa", "b"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void trimWorks() {
|
||||||
|
assertEquals("ab", " ab ".trim());
|
||||||
|
assertEquals("ab", "ab".trim());
|
||||||
|
assertEquals("", " ".trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void convertedToCharArray() {
|
||||||
|
char[] array = "123".toCharArray();
|
||||||
|
assertEquals(3, array.length);
|
||||||
|
assertEquals('1', array[0]);
|
||||||
|
assertEquals('2', array[1]);
|
||||||
|
assertEquals('3', array[2]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,6 +110,21 @@ class TAbstractStringBuilder extends TObject implements TSerializable, TCharSequ
|
||||||
return buffer[index];
|
return buffer[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TAbstractStringBuilder append(TCharSequence s, int start, int end) {
|
||||||
|
if (start > end || end > s.length() || start < 0) {
|
||||||
|
throw new TIndexOutOfBoundsException();
|
||||||
|
}
|
||||||
|
ensureCapacity(end - start);
|
||||||
|
for (int i = start; i < end; ++i) {
|
||||||
|
buffer[length++] = s.charAt(i);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TAbstractStringBuilder append(TCharSequence s) {
|
||||||
|
return append(s, 0, s.length());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TCharSequence subSequence(int start, int end) {
|
public TCharSequence subSequence(int start, int end) {
|
||||||
// TODO: implement
|
// TODO: implement
|
||||||
|
|
|
@ -2,6 +2,7 @@ package org.teavm.classlib.java.lang;
|
||||||
|
|
||||||
import org.teavm.classlib.java.lang.io.TSerializable;
|
import org.teavm.classlib.java.lang.io.TSerializable;
|
||||||
import org.teavm.javascript.ni.GeneratedBy;
|
import org.teavm.javascript.ni.GeneratedBy;
|
||||||
|
import org.teavm.javascript.ni.Rename;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -328,10 +329,68 @@ public class TString extends TObject implements TSerializable, TComparable<TStri
|
||||||
return new TString(buffer);
|
return new TString(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean contains(TCharSequence s) {
|
||||||
|
outer:
|
||||||
|
for (int i = 0; i < length(); ++i) {
|
||||||
|
for (int j = 0; j < s.length(); ++j) {
|
||||||
|
if (charAt(i + j) != s.charAt(j)) {
|
||||||
|
continue outer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TString replace(TCharSequence target, TCharSequence replacement) {
|
||||||
|
TStringBuilder sb = new TStringBuilder();
|
||||||
|
int sz = length() - target.length();
|
||||||
|
int i = 0;
|
||||||
|
outer:
|
||||||
|
for (; i < sz; ++i) {
|
||||||
|
for (int j = 0; j < target.length(); ++j) {
|
||||||
|
if (charAt(i + j) != target.charAt(j)) {
|
||||||
|
sb.append(charAt(i));
|
||||||
|
continue outer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sb.append(replacement);
|
||||||
|
i += target.length() - 1;
|
||||||
|
}
|
||||||
|
sb.append(substring(i));
|
||||||
|
return TString.wrap(sb.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public TString trim() {
|
||||||
|
int lower = 0;
|
||||||
|
int upper = length() - 1;
|
||||||
|
while (lower <= upper && charAt(lower) <= ' ') {
|
||||||
|
++lower;
|
||||||
|
}
|
||||||
|
while (lower <= upper && charAt(upper) <= ' ') {
|
||||||
|
--upper;
|
||||||
|
}
|
||||||
|
return substring(lower, upper + 1);
|
||||||
|
}
|
||||||
|
|
||||||
public static TString valueOf(int index) {
|
public static TString valueOf(int index) {
|
||||||
return new TStringBuilder().append(index).toString0();
|
return new TStringBuilder().append(index).toString0();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Rename("toString")
|
||||||
|
public TString toString0() {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public char[] toCharArray() {
|
||||||
|
char[] array = new char[characters.length];
|
||||||
|
for (int i = 0; i < array.length; ++i) {
|
||||||
|
array[i] = characters[i];
|
||||||
|
}
|
||||||
|
return array;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(TObject other) {
|
public boolean equals(TObject other) {
|
||||||
if (this == other) {
|
if (this == other) {
|
||||||
|
|
|
@ -28,4 +28,16 @@ public class TStringBuilder extends TAbstractStringBuilder {
|
||||||
super.appendCodePoint(codePoint);
|
super.appendCodePoint(codePoint);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TStringBuilder append(TCharSequence s, int start, int end) {
|
||||||
|
super.append(s, start, end);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TStringBuilder append(TCharSequence s) {
|
||||||
|
super.append(s);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user