예제 #1
0
        private static void SplitWhiteSpace(java.lang.String str, int length,
                                            java.util.ArrayList list, int maxCount,
                                            bool omit)
        {
            int listCount = 0;
            int lastIndex = -1;

            for (int index = 0; index < length; index++)
            {
                if (!Char.IsWhiteSpace(str.charAt(index)))
                {
                    continue;
                }
                if (index == ++lastIndex && omit)
                {
                    continue;
                }
                if (++listCount == maxCount)
                {
                    list.add(str.substring(lastIndex));
                    return;
                }
                list.add(str.substring(lastIndex, index));
                lastIndex = index;
            }
            if (length != ++lastIndex || !omit)
            {
                list.add(str.substring(lastIndex));
            }
        }
예제 #2
0
        private static bool CharAtIsAnyOf(java.lang.String str, int idx, char[] anyOf)
        {
            char ch1 = str.charAt(idx);

            foreach (var ch2 in anyOf)
            {
                if (ch2 == ch1)
                {
                    return(true);
                }
            }
            return(false);
        }
예제 #3
0
        public static string TrimWhiteSpace(java.lang.String str, bool trimStart, bool trimEnd)
        {
            int n = str.length();
            int i = 0;

            if (trimStart)
            {
                while (i < n && Char.IsWhiteSpace(str.charAt(i)))
                {
                    i++;
                }
            }
            if (trimEnd)
            {
                while (n-- > i && Char.IsWhiteSpace(str.charAt(n)))
                {
                    ;
                }
                n++;
            }
            return(str.substring(i, n));
        }
예제 #4
0
 public static bool IsNullOrWhiteSpace(java.lang.String str)
 {
     if (str != null)
     {
         int n = str.length();
         for (int i = 0; i < n; i++)
         {
             if (!Char.IsWhiteSpace(str.charAt(i)))
             {
                 return(false);
             }
         }
     }
     return(true);
 }
예제 #5
0
        private static int StrAtIsAnyOf(java.lang.String str, int idx, int anyOfNum,
                                        char[] anyOfChar, java.lang.String[] anyOfStr)
        {
            char ch = str.charAt(idx);

            for (int i = 0; i < anyOfNum; i++)
            {
                if (anyOfChar[i] == ch)
                {
                    int len = anyOfStr[i].length();
                    if (str.regionMatches(idx, anyOfStr[i], 0, len))
                    {
                        return(len);
                    }
                }
            }
            return(-1);
        }
예제 #6
0
        public static string FormatNumber(java.lang.String format, IFormatProvider provider,
                                          java.lang.Number number)
        {
            if (provider != null)
            {
                if ((provider is System.Globalization.NumberFormatInfo) ||
                    null != provider.GetFormat(
                        typeof(System.Globalization.NumberFormatInfo)))
                {
                    throw new PlatformNotSupportedException("provider with a NumberFormatInfo");
                }
            }

            int len = format.length();

            bool explicit_width = false;
            int  width          = -1;

            if (len == 1)
            {
                width = 0;
            }
            else if (len > 1 && len <= 3)
            {
                int n10 = 0;
                int n01 = (int)(format.charAt(1) - '0');
                if (len > 2)
                {
                    n10 = n01;
                    n01 = (int)(format.charAt(2) - '0');
                }
                if (n01 >= 0 && n01 <= 9 && n10 >= 0 && n10 <= 9)
                {
                    width = n10 * 10 + n01;
                }
            }

            char c     = format.charAt(0);
            bool isInt = (number is java.lang.Byte || number is java.lang.Short ||
                          number is java.lang.Integer || number is java.lang.Long);
            char   pfx = (char)0;
            string sfx = "";

            switch (Char.ToUpperInvariant(c))
            {
            case 'X':
                if (width != 0)
                {
                    pfx = '0';
                }
                if (!isInt)
                {
                    c = (char)0;
                }
                else if (number is java.lang.Byte)
                {
                    number = java.lang.Integer.valueOf(number.byteValue() & 0xFF);
                }
                else if (number is java.lang.Short)
                {
                    number = java.lang.Integer.valueOf(number.shortValue() & 0xFFFF);
                }
                break;

            case 'D':
                c   = isInt ? 'd' : (char)0;
                pfx = '0';
                break;

            case 'N':
                if (isInt)
                {
                    c     = 'd';
                    sfx   = "." + new string('0', width);
                    width = 0;
                }
                else
                {
                    c = 'f';
                    explicit_width = true;      // set width even if zero
                }
                pfx = ',';
                break;

            case 'P':
                number = java.lang.Double.valueOf(number.doubleValue() * 100.0);
                pfx    = ',';
                sfx    = "%%";
                if (len == 1)
                {
                    width = 2;
                }
                goto case 'F';

            case 'F':
                c = 'f';
                goto case 'G';

            case 'E':
            case 'G':
                if (isInt)
                {
                    number = java.lang.Double.valueOf(number.doubleValue());
                    isInt  = false;
                }
                break;

            default:
                c = (char)0;
                break;
            }

            if (c != 0 && width != -1)
            {
                var format1 = "%";
                if (pfx != 0)
                {
                    format1 += pfx;
                }
                if (explicit_width || width != 0)
                {
                    if (!isInt)
                    {
                        format1 += ".";
                    }
                    format1 += width.ToString();
                }
                format1 += c + sfx;
                return(java.lang.String.format(format1, new object[] { number }));
            }

            return((string)(object)format);
        }
예제 #7
0
        //
        //
        //

        // throws java.lang.StringIndexOutOfBounds -> System.IndexOutOfRangeException
        public static char get_Chars(java.lang.String str, int idx) => str.charAt(idx);