Пример #1
0
  public static void main(String[] args) throws IOException {

    // File           f  = new File(args[0]);
    //   BufferedReader br = new BufferedReader(new FileReader(f));

    BufferedReader br = new BufferedReader((new InputStreamReader(System.in)));

    String line;

    int[] digits;
    String columnName;
    int tmp;
    char c;
    while ((line = br.readLine()) != null) {

      tmp = Integer.parseInt(line);

      digits = convertBase(tmp, 26);

      columnName = "";

      for (int i = 0; i < digits.length; i++) {
        tmp = digits[i];

        if (tmp == -1) break;

        c = Character.toChars(tmp + 65)[0];

        columnName = c + columnName;
      }

      System.out.println(columnName);
    }
  }
Пример #2
0
 /**
  * This method ensures that the output String has only valid XML unicode characters as specified
  * by the XML 1.0 standard. For reference, please see the standard. This method will return an
  * empty String if the input is null or empty.
  *
  * @author Donoiu Cristian, GPL The String whose non-valid characters we want to remove. in
  *     String, stripped of non-valid characters.
  */
 public static String removeInvalidXMLCharacters(String s) {
   StringBuilder out = new StringBuilder(); // Used to hold the output.
   int codePoint; // Used to reference the current character.
   // String ss = "\ud801\udc00";                           // This is actualy one unicode
   // character, represented by two code units!!!.
   // System.out.println(ss.codePointCount(0, ss.length()));// See: 1
   int i = 0;
   while (i < s.length()) {
     // System.out.println("i=" + i);
     codePoint = s.codePointAt(i); // This is the unicode code of the character.
     if ((codePoint == 0x9)
         || // Consider testing larger ranges first to improve speed.
         (codePoint == 0xA)
         || (codePoint == 0xD)
         || ((codePoint >= 0x20) && (codePoint <= 0xD7FF))
         || ((codePoint >= 0xE000) && (codePoint <= 0xFFFD))
         || ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF))) {
       out.append(Character.toChars(codePoint));
     }
     i +=
         Character.charCount(
             codePoint); // Increment with the number of code units(java chars) needed to represent
                         // a Unicode char.
   }
   return out.toString();
 }
Пример #3
0
  public static void test() {
    TimeZone.setDefault(TimeZone.getTimeZone("GMT-0800"));

    // Any characters not explicitly defined as conversions, date/time
    // conversion suffixes, or flags are illegal and are reserved for
    // future extensions.  Use of such a character in a format string will
    // cause an UnknownFormatConversionException or
    // UnknownFormatFlagsException to be thrown.
    tryCatch("%q", UnknownFormatConversionException.class);
    tryCatch("%t&", UnknownFormatConversionException.class);
    tryCatch("%&d", UnknownFormatConversionException.class);
    tryCatch("%^b", UnknownFormatConversionException.class);

    // ---------------------------------------------------------------------
    // Formatter.java class javadoc examples
    // ---------------------------------------------------------------------
    test(Locale.FRANCE, "e = %+10.4f", "e =    +2,7183", Math.E);
    test("%4$2s %3$2s %2$2s %1$2s", " d  c  b  a", "a", "b", "c", "d");
    test(
        "Amount gained or lost since last statement: $ %,(.2f",
        "Amount gained or lost since last statement: $ (6,217.58)", (new BigDecimal("-6217.58")));
    Calendar c = new GregorianCalendar(1969, JULY, 20, 16, 17, 0);
    testSysOut("Local time: %tT", "Local time: 16:17:00", c);

    test(
        "Unable to open file '%1$s': %2$s",
        "Unable to open file 'food': No such file or directory",
        "food",
        "No such file or directory");
    Calendar duke = new GregorianCalendar(1995, MAY, 23, 19, 48, 34);
    duke.set(Calendar.MILLISECOND, 584);
    test("Duke's Birthday: %1$tB %1$te, %1$tY", "Duke's Birthday: May 23, 1995", duke);
    test("Duke's Birthday: %1$tB %1$te, %1$tY", "Duke's Birthday: May 23, 1995", duke.getTime());
    test(
        "Duke's Birthday: %1$tB %1$te, %1$tY",
        "Duke's Birthday: May 23, 1995", duke.getTimeInMillis());

    test("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s", "d c b a d c b a", "a", "b", "c", "d");
    test("%s %s %<s %<s", "a b b b", "a", "b", "c", "d");
    test("%s %s %s %s", "a b c d", "a", "b", "c", "d");
    test("%2$s %s %<s %s", "b a a b", "a", "b", "c", "d");

    // ---------------------------------------------------------------------
    // %b
    //
    // General conversion applicable to any argument.
    // ---------------------------------------------------------------------
    test("%b", "true", true);
    test("%b", "false", false);
    test("%B", "TRUE", true);
    test("%B", "FALSE", false);
    test("%b", "true", Boolean.TRUE);
    test("%b", "false", Boolean.FALSE);
    test("%B", "TRUE", Boolean.TRUE);
    test("%B", "FALSE", Boolean.FALSE);
    test("%14b", "          true", true);
    test("%-14b", "true          ", true);
    test("%5.1b", "    f", false);
    test("%-5.1b", "f    ", false);

    test("%b", "true", "foo");
    test("%b", "false", (Object) null);

    // Boolean.java hardcodes the Strings for "true" and "false", so no
    // localization is possible.
    test(Locale.FRANCE, "%b", "true", true);
    test(Locale.FRANCE, "%b", "false", false);

    // If you pass in a single array to a varargs method, the compiler
    // uses it as the array of arguments rather than treating it as a
    // single array-type argument.
    test("%b", "false", (Object[]) new String[2]);
    test("%b", "true", new String[2], new String[2]);

    int[] ia = {1, 2, 3};
    test("%b", "true", ia);

    // ---------------------------------------------------------------------
    // %b - errors
    // ---------------------------------------------------------------------
    tryCatch("%#b", FormatFlagsConversionMismatchException.class);
    tryCatch("%-b", MissingFormatWidthException.class);
    // correct or side-effect of implementation?
    tryCatch("%.b", UnknownFormatConversionException.class);
    tryCatch("%,b", FormatFlagsConversionMismatchException.class);

    // ---------------------------------------------------------------------
    // %c
    //
    // General conversion applicable to any argument.
    // ---------------------------------------------------------------------
    test("%c", "i", 'i');
    test("%C", "I", 'i');
    test("%4c", "   i", 'i');
    test("%-4c", "i   ", 'i');
    test("%4C", "   I", 'i');
    test("%-4C", "I   ", 'i');
    test("%c", "i", new Character('i'));
    test("%c", "H", (byte) 72);
    test("%c", "i", (short) 105);
    test("%c", "!", (int) 33);
    test("%c", "\u007F", Byte.MAX_VALUE);
    test("%c", new String(Character.toChars(Short.MAX_VALUE)), Short.MAX_VALUE);
    test("%c", "null", (Object) null);

    // ---------------------------------------------------------------------
    // %c - errors
    // ---------------------------------------------------------------------
    tryCatch("%c", IllegalFormatConversionException.class, Boolean.TRUE);
    tryCatch("%c", IllegalFormatConversionException.class, (float) 0.1);
    tryCatch("%c", IllegalFormatConversionException.class, new Object());
    tryCatch("%c", IllegalFormatCodePointException.class, Byte.MIN_VALUE);
    tryCatch("%c", IllegalFormatCodePointException.class, Short.MIN_VALUE);
    tryCatch("%c", IllegalFormatCodePointException.class, Integer.MIN_VALUE);
    tryCatch("%c", IllegalFormatCodePointException.class, Integer.MAX_VALUE);

    tryCatch("%#c", FormatFlagsConversionMismatchException.class);
    tryCatch("%,c", FormatFlagsConversionMismatchException.class);
    tryCatch("%(c", FormatFlagsConversionMismatchException.class);
    tryCatch("%$c", UnknownFormatConversionException.class);
    tryCatch("%.2c", IllegalFormatPrecisionException.class);

    // ---------------------------------------------------------------------
    // %s
    //
    // General conversion applicable to any argument.
    // ---------------------------------------------------------------------
    test("%s", "Hello, Duke", "Hello, Duke");
    test("%S", "HELLO, DUKE", "Hello, Duke");
    test("%20S", "         HELLO, DUKE", "Hello, Duke");
    test("%20s", "         Hello, Duke", "Hello, Duke");
    test("%-20s", "Hello, Duke         ", "Hello, Duke");
    test("%-20.5s", "Hello               ", "Hello, Duke");
    test("%s", "null", (Object) null);

    StringBuffer sb = new StringBuffer("foo bar");
    test("%s", sb.toString(), sb);
    test("%S", sb.toString().toUpperCase(), sb);

    // ---------------------------------------------------------------------
    // %s - errors
    // ---------------------------------------------------------------------
    tryCatch("%-s", MissingFormatWidthException.class);
    tryCatch("%--s", DuplicateFormatFlagsException.class);
    tryCatch("%#s", FormatFlagsConversionMismatchException.class, 0);
    tryCatch("%#s", FormatFlagsConversionMismatchException.class, 0.5f);
    tryCatch("%#s", FormatFlagsConversionMismatchException.class, "hello");
    tryCatch("%#s", FormatFlagsConversionMismatchException.class, null);

    // ---------------------------------------------------------------------
    // %h
    //
    // General conversion applicable to any argument.
    // ---------------------------------------------------------------------
    test("%h", Integer.toHexString("Hello, Duke".hashCode()), "Hello, Duke");
    test("%10h", "  ddf63471", "Hello, Duke");
    test("%-10h", "ddf63471  ", "Hello, Duke");
    test("%-10H", "DDF63471  ", "Hello, Duke");
    test("%10h", "  402e0000", 15.0);
    test("%10H", "  402E0000", 15.0);

    // ---------------------------------------------------------------------
    // %h - errors
    // ---------------------------------------------------------------------
    tryCatch("%#h", FormatFlagsConversionMismatchException.class);

    // ---------------------------------------------------------------------
    // flag/conversion errors
    // ---------------------------------------------------------------------
    tryCatch("%F", UnknownFormatConversionException.class);

    tryCatch("%#g", FormatFlagsConversionMismatchException.class);

    // ---------------------------------------------------------------------
    // BigInteger - errors
    // ---------------------------------------------------------------------
    tryCatch("%f", IllegalFormatConversionException.class, new BigInteger("1"));

    // ---------------------------------------------------------------------
    // %d - BigInteger
    // ---------------------------------------------------------------------
    test("%d", "null", (Object) null);
    test("%d", "1234567", new BigInteger("1234567", 10));
    test("%,d", "1,234,567", new BigInteger("1234567", 10));
    test(Locale.FRANCE, "%,d", "1\u00a0234\u00a0567", new BigInteger("1234567", 10));
    test("%,d", "-1,234,567", new BigInteger("-1234567", 10));
    test("%(d", "1234567", new BigInteger("1234567", 10));
    test("%(d", "(1234567)", new BigInteger("-1234567", 10));
    test("% d", " 1234567", new BigInteger("1234567", 10));
    test("% d", "-1234567", new BigInteger("-1234567", 10));
    test("%+d", "+1234567", new BigInteger("1234567", 10));
    test("%+d", "-1234567", new BigInteger("-1234567", 10));
    test("%010d", "0001234567", new BigInteger("1234567", 10));
    test("%010d", "-001234567", new BigInteger("-1234567", 10));
    test("%(10d", " (1234567)", new BigInteger("-1234567", 10));
    test("%+d", "+1234567", new BigInteger("1234567", 10));
    test("%+d", "-1234567", new BigInteger("-1234567", 10));
    test("%-10d", "1234567   ", new BigInteger("1234567", 10));
    test("%-10d", "-1234567  ", new BigInteger("-1234567", 10));

    // ---------------------------------------------------------------------
    // %o - BigInteger
    // ---------------------------------------------------------------------
    test("%o", "null", (Object) null);
    test("%o", "1234567", new BigInteger("1234567", 8));
    test("%(o", "1234567", new BigInteger("1234567", 8));
    test("%(o", "(1234567)", new BigInteger("-1234567", 8));
    test("% o", " 1234567", new BigInteger("1234567", 8));
    test("% o", "-1234567", new BigInteger("-1234567", 8));
    test("%+o", "+1234567", new BigInteger("1234567", 8));
    test("%+o", "-1234567", new BigInteger("-1234567", 8));
    test("%010o", "0001234567", new BigInteger("1234567", 8));
    test("%010o", "-001234567", new BigInteger("-1234567", 8));
    test("%(10o", " (1234567)", new BigInteger("-1234567", 8));
    test("%+o", "+1234567", new BigInteger("1234567", 8));
    test("%+o", "-1234567", new BigInteger("-1234567", 8));
    test("%-10o", "1234567   ", new BigInteger("1234567", 8));
    test("%-10o", "-1234567  ", new BigInteger("-1234567", 8));
    test("%#10o", "  01234567", new BigInteger("1234567", 8));
    test("%#10o", " -01234567", new BigInteger("-1234567", 8));

    // ---------------------------------------------------------------------
    // %x - BigInteger
    // ---------------------------------------------------------------------
    test("%x", "null", (Object) null);
    test("%x", "1234567", new BigInteger("1234567", 16));
    test("%(x", "1234567", new BigInteger("1234567", 16));
    test("%(x", "(1234567)", new BigInteger("-1234567", 16));
    test("% x", " 1234567", new BigInteger("1234567", 16));
    test("% x", "-1234567", new BigInteger("-1234567", 16));
    test("%+x", "+1234567", new BigInteger("1234567", 16));
    test("%+x", "-1234567", new BigInteger("-1234567", 16));
    test("%010x", "0001234567", new BigInteger("1234567", 16));
    test("%010x", "-001234567", new BigInteger("-1234567", 16));
    test("%(10x", " (1234567)", new BigInteger("-1234567", 16));
    test("%+x", "+1234567", new BigInteger("1234567", 16));
    test("%+x", "-1234567", new BigInteger("-1234567", 16));
    test("%-10x", "1234567   ", new BigInteger("1234567", 16));
    test("%-10x", "-1234567  ", new BigInteger("-1234567", 16));
    test("%#10x", " 0x1234567", new BigInteger("1234567", 16));
    test("%#10x", "-0x1234567", new BigInteger("-1234567", 16));
    test("%#10X", " 0X1234567", new BigInteger("1234567", 16));
    test("%#10X", "-0X1234567", new BigInteger("-1234567", 16));
    test("%X", "1234567A", new BigInteger("1234567a", 16));
    test("%X", "-1234567A", new BigInteger("-1234567a", 16));

    // ---------------------------------------------------------------------
    // %t
    //
    // Date/Time conversions applicable to Calendar, Date, and long.
    // ---------------------------------------------------------------------
    test("%tA", "null", (Object) null);
    test("%TA", "NULL", (Object) null);

    // ---------------------------------------------------------------------
    // %t - errors
    // ---------------------------------------------------------------------
    tryCatch("%t", UnknownFormatConversionException.class);
    tryCatch("%T", UnknownFormatConversionException.class);
    tryCatch("%tP", UnknownFormatConversionException.class);
    tryCatch("%TP", UnknownFormatConversionException.class);
    tryCatch("%.5tB", IllegalFormatPrecisionException.class);
    tryCatch("%#tB", FormatFlagsConversionMismatchException.class);
    tryCatch("%-tB", MissingFormatWidthException.class);

    // ---------------------------------------------------------------------
    // %n
    // ---------------------------------------------------------------------
    test("%n", System.getProperty("line.separator"), (Object) null);
    test("%n", System.getProperty("line.separator"), "");

    tryCatch("%,n", IllegalFormatFlagsException.class);
    tryCatch("%.n", UnknownFormatConversionException.class);
    tryCatch("%5.n", UnknownFormatConversionException.class);
    tryCatch("%5n", IllegalFormatWidthException.class);
    tryCatch("%.7n", IllegalFormatPrecisionException.class);
    tryCatch("%<n", IllegalFormatFlagsException.class);

    // ---------------------------------------------------------------------
    // %%
    // ---------------------------------------------------------------------
    test("%%", "%", (Object) null);
    test("%%", "%", "");
    tryCatch("%%%", UnknownFormatConversionException.class);
    // perhaps an IllegalFormatArgumentIndexException should be defined?
    tryCatch("%<%", IllegalFormatFlagsException.class);
  }