Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
我用Java编写了一个代码,将大写字符转换为小写字母,反之亦然。例如,我检查了每种边缘情况是否为空字符串,无效字符串或包含空格的字符串。
问题:为什么当我使用以下输入字符串
输出显示
3232
String s = new String(“ ab cd”);
输出显示
97 98 32 99 10032AB CD
下面是我的代码
第二次在这里:
我假设应该删除后者。
例如,对于“ ab cd”输入,第一个循环打印:
然后
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
我用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
。09-26 03:02