到目前为止我有什么
public String toUpperCase(String str)
{
int strLength = str.length();
String word = "";
while (strLength > 0)
{
char newStr = str.charAt(strLength);
Character.toUpperCase(newStr);
Character.toString(newStr);
word += newStr;
strLength--;
}
return word;
}
我完全失去了,我的代码可能不合逻辑。一些帮助将不胜感激
答案 0 :(得分:1)
EventUser
函数返回一个字符。您必须在char字面值中保存该值。
另外,你应该在Character.toUpperCase()
开始循环,否则会抛出strLength - 1
错误。并且,您应该迭代到索引StringIndexOutOfBounds
。目前,您从0
迭代到strLength
。
最后,由于你是在相反的方向迭代,你应该注意你追加字符的方式。
1
由于考虑到函数不存在而要求您编写函数,因此不使用public String toUpperCase(String str)
{
int strLength = str.length();
String word = "";
while (--strLength >= 0)
{
char newChar = str.charAt(strLength);
newChar = Character.toUpperCase(newChar);
word = newChar + word; //appending in reverse order
}
return word;
}
方法就不那么讽刺了。即使我已经使用过它。在这种情况下,您可以查看@Sam的建议。以上代码将进行此修改:
Character.toUpperCase()
答案 1 :(得分:1)
要在不使用toUpperCase()的情况下将字符串更改为大写,请检查以下代码。
if(ch>96 && ch<123)
{
ch=ch-32;
System.out.print( (char) ch);
}
检查char小写字母是否小,然后从32
减去它答案 2 :(得分:1)
您应该查看ASCII表。
char是整数,&#39; A&#39;到了&#39; Z&#39;是65到90和&#39; a&#39;到&#39; z&#39;是97到122。
所以,如果你在&#39; a&#39;之间有一个字符。和&#39; z&#39;你想要减去差异,并且“A&#39; A&#39;和&#39; a&#39;到你的角色。
&#39;一个&#39; - (&#39; a&#39; - &#39; A&#39;)=&#39; A&#39;
&#39; C&#39; - (&#39; a&#39; - &#39; A&#39;)=&#39; C&#39;
所以你需要迭代你的字符串并对每个字符进行数学运算。
public static char myUpper(char c){
if (c >= 'a' || c <= 'z'){
c = (char) (c - ('a' - 'A'));
}
return c;
}
答案 3 :(得分:0)
我个人会这样做。
String newsentence =""; String question="HeLlo";
String caps = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String lowerCase = "abcdefghijklmnopqrstuvwxyz";
for(int i=0;i<caps.length();i++) {
for(int j=0;j<caps.length();j++) {
if(question.equals(lowerCase.subString(j,j+1)){ newsentence+= (caps.subString(i,i+1); }
}} System.out.print(newsentence);
这就是我要做的。