JavaScript Source Code
class StringADT {
constructor(str) {
this.str = str;
}
getSubstring(start, length) {
if (start < 0 || start >= this.str.length) {
throw new Error("Invalid start index");
}
if (length < 0) {
throw new Error("Invalid length");
}
return this.str.substring(start, start + length);
}
isEqual(other) {
if (!(other instanceof StringADT)) {
throw new Error("Comparison must be with another StringADT instance");
}
return this.str === other.str;
}
isSubstringOf(other) {
if (!(other instanceof StringADT)) {
throw new Error("Comparison must be with another StringADT instance");
}
return other.str.includes(this.str);
}
reverse() {
return this.str.split("").reverse().join("");
}
getLength() {
return this.str.length;
}
toUpperCase() {
return this.str.toUpperCase();
}
toLowerCase() {
return this.str.toLowerCase();
}
print() {
console.log(this.str);
}
}
const str1 = new StringADT("Hello, World!");
const str2 = new StringADT("World");
const str3 = new StringADT("Hello, World!");
const resultDiv = document.getElementById('result');
function appendToResult(text) {
resultDiv.innerHTML += text + '
';
}
appendToResult("Substring (0, 5): " + str1.getSubstring(0, 5));
appendToResult("Are str1 and str3 equal? " + str1.isEqual(str3));
appendToResult("Is str2 a substring of str1? " + str2.isSubstringOf(str1));
appendToResult("Reversed str1: " + str1.reverse());
appendToResult("Length of str1: " + str1.getLength());
appendToResult("Uppercase str1: " + str1.toUpperCase());
appendToResult("Lowercase str1: " + str1.toLowerCase());
str1.print();
Running Results
返回主页