/** * Be cautious with this method, no new internal String object is created * * @param value * @return */ protected static StringX newInstance(final String value) { StringX d; d = new StringX(null); d.fString = value; return d; }
/** * @param l * @return */ public static StringX valueOf(final long l) { return newInstance(String.valueOf(l)); }
/** * Create a string expression * * @param str * @return */ final static public IStringX stringx(final String str) { return StringX.valueOf(str); }
if (radix > 0) { try { return F.ZZ(new BigInteger(str.toString(), radix)); } catch (RuntimeException rex) { IASTAppendable digitsList = F.ListAlloc(str.length()); for (int i = 0; i < str.length(); i++) { int digit = Integer.MIN_VALUE; char ch = str.charAt(i); if (ch >= '0' && ch <= '9') { digit = Character.digit(ch, radix);
/** * Compares this expression with the specified expression for order. Returns a * negative integer, zero, or a positive integer as this expression is * canonical less than, equal to, or greater than the specified expression. */ public int compareTo(final IExpr obj) { if (obj instanceof StringX) { return fString.compareTo(((StringX) obj).fString); } return (hierarchy() - (obj).hierarchy()); }
/** * @param obj * @return */ public static StringX valueOf(final Object obj) { return newInstance(String.valueOf(obj)); }
/** * Create a string expression * * @param str * @return */ final static public IStringX stringx(final StringBuffer str) { return StringX.valueOf(str); }
/** * Be cautious with this method, no new internal String object is created * * @param numerator * @return */ protected static StringX newInstance(final String value) { // IntegerImpl z = new IntegerImpl(); StringX d; // if (Config.SERVER_MODE) { // if (Config.STRING_MAX_SIZE < value.length()) { // throw new ObjectMemoryExceededException("StringX", value.length()); // } // d = FACTORY.object(); // } else { d = new StringX(null); // } d.fString = value; return d; }
/** * @param data * @return */ public static StringX copyValueOf(final char[] data) { return newInstance(String.copyValueOf(data)); }
/** * Create a string expression * * @param str * @return */ final static public IStringX $str(final String str) { return StringX.valueOf(str); }
public static StringX newInstance(final byte[] bytes, Charset charset) { StringX d = new StringX(null); d.fString = new String(bytes, charset); return d; }
/** * @param c * @return */ public static StringX valueOf(final char c) { return newInstance(String.valueOf(c)); }
/** * Create a string expression * * @param str * @return */ final static public IStringX stringx(final String str) { return StringX.valueOf(str); }
/** * @param data * @param offset * @param count * @return */ public static StringX copyValueOf(final char[] data, final int offset, final int count) { return newInstance(String.copyValueOf(data, offset, count)); }
/** * Create a string expression * * @param str * @return */ final static public IStringX stringx(final StringBuilder str) { return StringX.valueOf(str); }
/** * @param c * @return */ public static StringX valueOf(final char c) { return newInstance(String.valueOf(c)); }
/** * simple parser to simplify unit tests. The parser assumes that the String contains no syntax errors. * * Example "List[x,List[y]]" * * @param inputString * @return */ public static IAST parse(final String inputString) { final StringTokenizer tokenizer = new StringTokenizer(inputString, "[],", true); String token = tokenizer.nextToken(); final IASTAppendable list = newInstance(StringX.valueOf(token)); token = tokenizer.nextToken(); if ("[".equals(token)) { parseList(tokenizer, list); return list; } // syntax fError occured return null; }
/** * @param d * @return */ public static StringX valueOf(final double d) { return newInstance(String.valueOf(d)); }
private static void parseList(final StringTokenizer tokenizer, final IASTAppendable list) { String token = tokenizer.nextToken(); do { if ("]".equals(token)) { return; } else if (" ".equals(token)) { // ignore spaces } else { String arg; if (",".equals(token)) { arg = tokenizer.nextToken(); } else { arg = token; } token = tokenizer.nextToken(); if ("[".equals(token)) { IASTAppendable argList = newInstance(StringX.valueOf(arg)); parseList(tokenizer, argList); list.append(argList); } else { list.append(StringX.valueOf(arg)); continue; } } token = tokenizer.nextToken(); } while (tokenizer.hasMoreTokens()); }
/** * @param i * @return */ public static StringX valueOf(final int i) { return newInstance(String.valueOf(i)); }