将字符串减少到最短
Reduce string to shortest
我正在尝试将字符串缩减为最短的字符串。在 for
循环中,我使用 str2.charAt( i ) == str2.charAt( i + 1 )
检查所有字符并使用 str2 = str2.substring ( 0 , i ) + str2.substring ( i + 2 );
创建新字符串,然后使用 i=0
检查新字符串。但是,我不能对大写和小写都这样做。我的意思是,例如,
输入: aabcddef
输出: bcef
没问题,但是
输入: AabcddeFf
输出: AabceFf
在这种情况下,我需要得到输出:bce
。我无法使用 equalsIgnoreCase()
方法。我该如何解决?
当像你这样比较时,A
不等于 a
,你可以通过忽略大小写来检查相等性,你可以通过将两者都设置为大写来做到这一点
if (Character.toUpperCase(str2.charAt(i)) == Character.toUpperCase(str2.charAt(i + 1))) {
str2 = str2.substring(0, i) + str2.substring(i + 2);
i = 0;
}
我正在尝试将字符串缩减为最短的字符串。在 for
循环中,我使用 str2.charAt( i ) == str2.charAt( i + 1 )
检查所有字符并使用 str2 = str2.substring ( 0 , i ) + str2.substring ( i + 2 );
创建新字符串,然后使用 i=0
检查新字符串。但是,我不能对大写和小写都这样做。我的意思是,例如,
输入: aabcddef
输出: bcef
没问题,但是
输入: AabcddeFf
输出: AabceFf
在这种情况下,我需要得到输出:bce
。我无法使用 equalsIgnoreCase()
方法。我该如何解决?
当像你这样比较时,A
不等于 a
,你可以通过忽略大小写来检查相等性,你可以通过将两者都设置为大写来做到这一点
if (Character.toUpperCase(str2.charAt(i)) == Character.toUpperCase(str2.charAt(i + 1))) {
str2 = str2.substring(0, i) + str2.substring(i + 2);
i = 0;
}