关闭

JavaString.js

559人阅读 评论(0) 收藏 举报

/**
 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;
  }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:21477次
    • 积分:371
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:5篇
    • 译文:0篇
    • 评论:2条
    最新评论