下面是一个示例代码,可以比较两个字符数组而不包含回车和换行符(CR LF):
public class CompareArraysWithoutCRandLF {
public static void main(String[] args) {
// 定义两个字符数组
char[] arr1 = {'a', 'b', 'c', '\r', 'd', 'e', 'f', '\n'};
char[] arr2 = {'a', 'b', 'c', 'd', 'e', 'f'};
// 比较两个数组
boolean isEqual = compareArrays(arr1, arr2);
// 打印比较结果
System.out.println("Arrays are " + (isEqual ? "equal" : "not equal"));
}
public static boolean compareArrays(char[] arr1, char[] arr2) {
// 获取两个数组的有效长度(去除CR LF)
int len1 = getValidLength(arr1);
int len2 = getValidLength(arr2);
// 如果有效长度不相等,则两个数组不相等
if (len1 != len2) {
return false;
}
// 逐个比较字符
for (int i = 0; i < len1; i++) {
if (arr1[i] != arr2[i]) {
return false;
}
}
return true;
}
public static int getValidLength(char[] arr) {
int length = arr.length;
// 从数组末尾开始遍历,去除CR LF
for (int i = length - 1; i >= 0; i--) {
if (arr[i] != '\r' && arr[i] != '\n') {
return i + 1;
}
}
return length;
}
}
这个示例代码中,compareArrays
方法用于比较两个字符数组,getValidLength
方法用于获取有效长度(去除CR LF)。首先,通过调用getValidLength
方法获取两个数组的有效长度,然后比较两个有效长度是否相等。如果有效长度不相等,则两个数组不相等。如果有效长度相等,则使用循环逐个比较字符是否相等。如果有任何字符不相等,则返回false
,否则返回true
表示两个数组相等。