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

返回主页