package net.sourceforge.phpdt.internal.core.util;
/**
- * A class to do characters operations so that we can use
- * char arrays more effectively.
+ * A class to do characters operations so that we can use char arrays more
+ * effectively.
*/
public class CharArrayOps { // TODO: should promote to CharOperation
-/**
- * Returns the char arrays as an array of Strings
- */
-public static String[] charcharToString(char[][] charchar) {
- if (charchar == null) {
- return null;
+ /**
+ * Returns the char arrays as an array of Strings
+ */
+ public static String[] charcharToString(char[][] charchar) {
+ if (charchar == null) {
+ return null;
+ }
+ String[] strings = new String[charchar.length];
+ for (int i = 0; i < charchar.length; i++) {
+ strings[i] = new String(charchar[i]);
+ }
+ return strings;
}
- String[] strings= new String[charchar.length];
- for (int i= 0; i < charchar.length; i++) {
- strings[i]= new String(charchar[i]);
+
+ /**
+ * Returns the char array as a String
+ */
+ public static String charToString(char[] chars) {
+ if (chars == null) {
+ return null;
+ } else {
+ return new String(chars);
+ }
}
- return strings;
-}
-/**
- * Returns the char array as a String
- */
-public static String charToString(char[] chars) {
- if (chars == null) {
- return null;
- } else {
- return new String(chars);
+
+ /**
+ * Concatinates the two arrays into one big array. If the first array is
+ * null, returns the second array. If the second array is null, returns the
+ * first array.
+ *
+ * @param first -
+ * the array which the other array is concatinated onto
+ * @param second -
+ * the array which is to be concatinated onto the first array
+ */
+ public static char[] concat(char[] first, char[] second) {
+ if (first == null)
+ return second;
+ if (second == null)
+ return first;
+
+ int length1 = first.length;
+ int length2 = second.length;
+ char[] result = new char[length1 + length2];
+ System.arraycopy(first, 0, result, 0, length1);
+ System.arraycopy(second, 0, result, length1, length2);
+ return result;
}
-}
-/**
- * Concatinates the two arrays into one big array.
- * If the first array is null, returns the second array.
- * If the second array is null, returns the first array.
- *
- * @param first - the array which the other array is concatinated onto
- * @param second - the array which is to be concatinated onto the first array
- */
-public static char[] concat(char[] first, char[] second) {
- if (first == null)
- return second;
- if (second == null)
- return first;
- int length1 = first.length;
- int length2 = second.length;
- char[] result = new char[length1 + length2];
- System.arraycopy(first, 0, result, 0, length1);
- System.arraycopy(second, 0, result, length1, length2);
- return result;
-}
-/**
- * Checks the two character arrays for equality.
- *
- * @param first - one of the arrays to be compared
- * @param second - the other array which is to be compared
- */
-public static boolean equals(char[] first, char[] second) {
- if (first == second)
+ /**
+ * Checks the two character arrays for equality.
+ *
+ * @param first -
+ * one of the arrays to be compared
+ * @param second -
+ * the other array which is to be compared
+ */
+ public static boolean equals(char[] first, char[] second) {
+ if (first == second)
+ return true;
+ if (first == null || second == null)
+ return false;
+ if (first.length != second.length)
+ return false;
+
+ for (int i = 0, length = first.length; i < length; i++)
+ if (first[i] != second[i])
+ return false;
return true;
- if (first == null || second == null)
- return false;
- if (first.length != second.length)
- return false;
+ }
- for (int i = 0, length = first.length; i < length; i++)
- if (first[i] != second[i])
- return false;
- return true;
-}
-/**
- * Returns the index of the first occurrence of character in buffer,
- * starting from offset, or -1 if not found.
- */
-public static int indexOf(char character, char[] buffer, int offset) {
- for (int i= offset; i < buffer.length; i++) {
- if (buffer[i] == character) {
- return i;
+ /**
+ * Returns the index of the first occurrence of character in buffer,
+ * starting from offset, or -1 if not found.
+ */
+ public static int indexOf(char character, char[] buffer, int offset) {
+ for (int i = offset; i < buffer.length; i++) {
+ if (buffer[i] == character) {
+ return i;
+ }
}
+ return -1;
}
- return -1;
-}
-/**
- * Extracts a sub-array from the given array, starting
- * at the given startIndex and proceeding for length characters.
- * Returns null if:
- * 1. the src array is null
- * 2. the start index is out of bounds
- * 3. the length parameter specifies a end point which is out of bounds
- * Does not return a copy of the array if possible, in other words, if start is zero
- * and length equals the length of the src array.
- *
- * @param src - the array from which elements need to be copied
- * @param start - the start index in the src array
- * @param length - the number of characters to copy
- */
-public static char[] subarray(char[] src, int start, int length) {
- if (src == null)
- return null;
- int srcLength = src.length;
- if (start < 0 || start >= srcLength)
- return null;
- if (length < 0 || start + length > srcLength)
- return null;
- if (srcLength == length && start == 0)
- return src;
-
- char[] result = new char[length];
- if (length > 0)
- System.arraycopy(src, start, result, 0, length);
- return result;
-}
-/**
- * Extracts a substring from the given array, starting
- * at the given startIndex and proceeding for length characters.
- * Returns null if:
- * 1. the src array is null
- * 2. the start index is out of bounds
- * 3. the length parameter specifies a end point which is out of bounds
- * Does not return a copy of the array if possible (if start is zero
- * and length equals the length of the src array).
- *
- * @param src - the array from which elements need to be copied
- * @param start - the start index in the src array
- * @param length - the number of characters to copy
- */
-public static String substring(char[] src, int start, int length) {
- char[] chars= subarray(src, start, length);
- if (chars != null) {
- return new String(chars);
- } else {
- return null;
+
+ /**
+ * Extracts a sub-array from the given array, starting at the given
+ * startIndex and proceeding for length characters. Returns null if: 1. the
+ * src array is null 2. the start index is out of bounds 3. the length
+ * parameter specifies a end point which is out of bounds Does not return a
+ * copy of the array if possible, in other words, if start is zero and
+ * length equals the length of the src array.
+ *
+ * @param src -
+ * the array from which elements need to be copied
+ * @param start -
+ * the start index in the src array
+ * @param length -
+ * the number of characters to copy
+ */
+ public static char[] subarray(char[] src, int start, int length) {
+ if (src == null)
+ return null;
+ int srcLength = src.length;
+ if (start < 0 || start >= srcLength)
+ return null;
+ if (length < 0 || start + length > srcLength)
+ return null;
+ if (srcLength == length && start == 0)
+ return src;
+
+ char[] result = new char[length];
+ if (length > 0)
+ System.arraycopy(src, start, result, 0, length);
+ return result;
+ }
+
+ /**
+ * Extracts a substring from the given array, starting at the given
+ * startIndex and proceeding for length characters. Returns null if: 1. the
+ * src array is null 2. the start index is out of bounds 3. the length
+ * parameter specifies a end point which is out of bounds Does not return a
+ * copy of the array if possible (if start is zero and length equals the
+ * length of the src array).
+ *
+ * @param src -
+ * the array from which elements need to be copied
+ * @param start -
+ * the start index in the src array
+ * @param length -
+ * the number of characters to copy
+ */
+ public static String substring(char[] src, int start, int length) {
+ char[] chars = subarray(src, start, length);
+ if (chars != null) {
+ return new String(chars);
+ } else {
+ return null;
+ }
}
-}
}