【发布时间】:2020-09-09 03:09:50
【问题描述】:
我正在编写一个将命名转换为标准命名约定的程序。 例如,(aLeX teReNce = Alex Terence) 和另一个例子,(kImBerLy tAn > Kimberly Tan) 我已经成功转换了它,但是当进行比较时,程序会失败。我能知道这里有什么问题吗?还有其他解决方法吗?除了 toUpper 和 toLower 还有其他方法吗?
这可能与内存位置有关吗?因为当我将 aLeX teReNce 更改为 aLeX teRaNce 时,我在那里得到了一些奇怪的符号,看起来程序正在显示内存地址
谢谢!
public static void main(String args[])
{
String searchName = "aLeX teReNce";
String[] str = searchName.split(" ");
searchName = "";
for(int i = 0; i < str.length; i++)
{
searchName += toUpper(str[i].charAt(0));
for(int j = 1; j < str[i].length(); j++)
{
searchName += toLower(str[i].charAt(j));
}
searchName += " ";
}
searchName = searchName.trim();
System.out.println("After Rearrange: " + searchName);
System.out.println();
if(searchName.equals("Alex Terence"))
{
System.out.println("True");
}
}
public static char toUpper(char upper)
{
if(!(upper > 'A' && upper < 'Z'))
{
upper = (char)((int)(upper) - 32);
}
return upper;
}
public static char toLower(char lower)
{
if(!(lower > 'a' && lower < 'z'))
{
lower = (char)((int)(lower) + 32);
}
return lower;
}
【问题讨论】:
-
searchName在最后一个位置有一个空格。 -
但是当我显示 searchName 时,它确实像我预期的那样出现了 Alex Terence。问题是当我在 if 语句中用“Alex Terence”检查它时,它不会进入它
-
因为
searchName末尾有一个空格。在Alex Terence之后添加一个空格,您会看到会发生什么。
标签: java sorting heap-memory uppercase lowercase