JavaString.js

/**
 use as java.lang.String for java programmer!
 becasuse String is a Object of JavaScirpt,we named it as JavaString!
 String is used most commonly in JavaScript
 we can use JavaString in ArrayList,HashMap,HashSet etc!
 */
function testJavaString() {
  alert("JavaStrint test begin:");
  try {
    var javaStr = new JavaString("Hello World");

    assert(javaStr.length() == 11);

    assert(javaStr.charAt(2) == 'l');

    assert(javaStr.equals(new JavaString("Hello World")));

    assert(javaStr.equalsIgnoreCase("hello world"));


    assert(javaStr.compareTo("Hello") > 0);
    assert(javaStr.compareTo("MX") < 0);
    assert(javaStr.compareTo("Hello World") == 0);

    assert(javaStr.startsWith("Hello "));

    assert(javaStr.endsWith("orld"));

    assert(javaStr.indexOf("o") == 4);

    assert(javaStr.lastIndexOf("o") == 7);

    assert(javaStr.concat(" WSG").equals(new JavaString("Hello World WSG")));

    assert(javaStr.replace("o", "").equals(new JavaString("Hell World")));

    assert(javaStr.replaceAll("o", "").equals(new JavaString("Hell Wrld")));

    assert(javaStr.matches("Hell.+"));

    assert(javaStr.split(" ").length == 2);
    assert(javaStr.split("o")[1] == " W");
    assert(javaStr.toCharArray().length == 11);
    assert(javaStr.toCharArray()[4] == "o");

    assert(javaStr.toString() == "Hello World");
    assert(javaStr.toUpperCase().equals(new JavaString("HELLO WORLD")));
    assert(javaStr.toLowerCase().equals(new JavaString("hello world")));

  }
  catch(e) {
    alert(e);
  }
  alert("JavaString test end");
}

function JavaString(val) {
  private:
          this.value = val;

  public:
          this.length = length;
  function length() {
    return this.value.length;
  }
  this.charAt = charAt;
  function charAt(index) {
    return this.value.charAt(index);
  }

  this.equals = equals;
  function equals(str) {
    return this.value == str.value;
  }

  this.equalsIgnoreCase = equalsIgnoreCase;
  function equalsIgnoreCase(str) {
    return this.value.toUpperCase() == str.toUpperCase();
  }

  this.compareTo = compareTo;
  function compareTo(str) {
    if (this.value == str.value) return 0;
    else if (this.value > str.value) return 1;
    else return -1;
  }

  this.compareToIgnoreCase = compareToIgnoreCase;
  function compareToIgnoreCase(str) {
    var a = this.value.toUpperCase();
    var b = str.toUpperCase();
    if (a == b) return 0;
    else if (a > b) return 1;
    else return -1;
  }

  this.startsWith = startsWith;
  function startsWith(prefix) {
    return this.value.substring(0, prefix.length) == prefix;
  }

  this.endsWith = endsWith;
  function endsWith(suffix) {
    return this.value.substring(this.value.length - suffix.length) == suffix;
  }

  this.hashCode = hashCode;
  function hashCode() {
    var h = 0;
    for (var i = 0; i < this.value.length; i++) {
      h = 31 * h + this.value.charCodeAt(i);
    }
    return h;
  }

  this.indexOf = indexOf;
  function indexOf(ch) {
    return this.value.indexOf(ch);
  }

  this.lastIndexOf = lastIndexOf;
  function lastIndexOf(ch) {
    return this.value.lastIndexOf(ch);
  }


  this.substring = substring;
  function substring() {
    var args = substring.arguments;
    var begin = args[0];

    if (args.length > 1) return new JavaString(this.value.substring(begin, args[1]));
    else return new JavaString(this.value.substring(begin));
  }


  this.concat = concat;
  function concat(str) {
    return new JavaString(this.value + str);
  }

  this.replace = replace;
  function replace(oldStr, newStr) {
    return new JavaString(this.value.replace(oldStr, newStr));
  }


  this.matches = matches;
  function matches(regex) {
    return this.value.match(regex) != null;
  }

  this.replaceFirst = replaceFirst;
  function replaceFirst(regex, replacement) {
    return new JavaString(this.value.replace(regex, replacement));
  }

  this.replaceAll = replaceAll;
  function replaceAll(regex, replacement) {
    var va = this.value;
    var temp = va.replace(regex, replacement);
    while (temp != va) {
      va = temp;
      temp = va.replace(regex, replacement);
    }
    return new JavaString(va);
  }


  this.split = split;
  function split(sep) {
    return this.value.split(sep);
  }

  this.toLowerCase = toLowerCase;
  function toLowerCase() {
    return new JavaString(this.value.toLowerCase());
  }

  this.toUpperCase = toUpperCase;
  function toUpperCase() {
    return new JavaString(this.value.toUpperCase());
  }

  this.toCharArray = toCharArray;
  function toCharArray() {
    var charArr = new Array();
    for (var i = 0; i < this.value.length; i++) charArr[i] = this.value.charAt(i);
    return charArr;
  }

  this.toString = toString;
  function toString() {
    return this.value;
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值