gpt4 book ai didi

java - 为什么在java中尝试将大写字母转换为小写字母时末尾会出现额外的空格,反之亦然

转载 作者:行者123 更新时间:2023-12-01 11:22:36 25 4
gpt4 key购买 nike

我用 java 编写了一个代码,将大写字符转换为小写字符,反之亦然。我检查了每个边缘情况,例如空字符串、无效字符串或包含空格的字符串。

问题:为什么当我使用以下输入字符串 s=new String(" ") 时会出现额外的空格?

输出显示

3232

String s=new String("ab cd");

输出显示

97 98 32 99 10032AB CD

下面是我的代码

class Change
{
static void change(String p)
{
if (p == null)
{
System.out.print("Null String");
}
int f = p.length();
if (f == 0)
{
System.out.print(" Empty String");
}
else
{
int u = 0;
int i = 0;
byte d = 32;
char c[] = p.toCharArray();
byte b[] = p.getBytes();
for (i = 0; i < b.length; i++)
{
System.out.print(" ");
System.out.print(b[i]);
}

for (i = 0; i < b.length; i++)
{
if (b[i] >= 65 && b[i] <= 90)
{
b[i] = (byte) (b[i] + d);
}
else
{
if (b[i] >= 97 && b[i] <= 122)
{
b[i] = (byte) (b[i] - d);
}
else
{
if (b[i] == ' ')
{
System.out.print(b[i]);
}
else
{
System.out.print("Not a valid character");
break;
}
}
}
}
String s2 = new String(b);
System.out.print(s2);
}
}

public static void main(String s[])
{
String s2 = new String("ab cd");
change(s2);
}
}

最佳答案

您将每个空格打印两次:

第一次来这里:

for(i=0;i<b.length;i++)
{
System.out.print(" ");
System.out.print(b[i]); // first time
}

第二次来这里:

           if(b[i]==' ')             
{
System.out.print(b[i]); // second time
}

我认为后者应该被删除。

例如,对于“ab cd”输入,第一个循环打印:97 98 32 99 100。然后 if(b[i]==' ') 的条件打印另一个 32

关于java - 为什么在java中尝试将大写字母转换为小写字母时末尾会出现额外的空格,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31066473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com