Java程序
给出的指示是: 编写一个程序,提示用户输入并接受一行文本,然后用小写字母打印出来,空格后面的字符除外。这些字符要大写 注意:不要拆分字符串Java程序,java,Java,给出的指示是: 编写一个程序,提示用户输入并接受一行文本,然后用小写字母打印出来,空格后面的字符除外。这些字符要大写 注意:不要拆分字符串 接受来自用户的字符串 将所有字符转换为小写 逐个检查每个字符,并将空格后的字符大写 我当前的代码: import java.util.Scanner; public class Capitalize { public static void main(String[] args) { Scanner input = new Scanner(Sy
- 接受来自用户的字符串
- 将所有字符转换为小写
- 逐个检查每个字符,并将空格后的字符大写
import java.util.Scanner;
public class Capitalize
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("Enter a line of text:");
String TextLine = input.next();
//String FirstLetter = input.next();
String NewTextLine = " ";
int Length = TextLine.length();
System.out.print("The all lower case line of text is: " + TextLine);
for(int i = 0; i < Length; i++)
{
char Letter = TextLine.charAt(i);
System.out.print(Letter);
if(Letter != ' ')
{
Letter = Character.toLowerCase(TextLine.charAt(i));
}
else
{
Letter = Character.toUpperCase(TextLine.charAt(i));
}
NewTextLine = NewTextLine + Letter;
}
System.out.print("\nThe new text line of text is: " + NewTextLine);
}
}
import java.util.Scanner;
公共阶级资本化
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
System.out.print(“输入一行文本:”);
字符串TextLine=input.next();
//String FirstLetter=input.next();
字符串NewTextLine=“”;
int Length=TextLine.Length();
System.out.print(“文本的全小写行为:“+TextLine”);
for(int i=0;i
输出为:
输入一行文本:aBc Def GHIJ
文本的全小写行是:aBcaBc
新的文本行是:abc
这不是我想要的输出。
我想取“aBc DeF GHIJ”,去掉所有小写字母“aBc DeF GHIJ”,新的文本行是“aBc DeF GHIJ”
有人能帮我找出我的代码哪里出错了吗?以及如何修复它 您正在将
字符
与文本字符串
”
进行比较:
按文本字符''
更改空格
if(Letter != ' ')
发件人:
字符和字符串文本
始终对字符文本使用“单引号”,对字符串文本使用“双引号”
您正在将
字符
与文本字符串
”
进行比较:
按文本字符''
更改空格
if(Letter != ' ')
发件人:
字符和字符串文本
始终对字符文本使用“单引号”,对字符串文本使用“双引号”
改变
Letter != " "
到
双引号用于字符串,单引号用于字符
你也可以这样做:
Letter != 040 // Octal
Letter != 32 // Integer
Latter != 0x20 // Hexadecimal
这些是空间的最佳选择。更改
Letter != " "
到
双引号用于字符串,单引号用于字符
你也可以这样做:
Letter != 040 // Octal
Letter != 32 // Integer
Latter != 0x20 // Hexadecimal
这些是空格的缩写。似乎您已经在某处将字母定义为字符。使用双引号(“”)表示字符串。单引号(“”)表示字符。因此,将
if(Letter!=“”)
更改为if(Letter!=“”)
似乎您已经在某处将字母定义为字符。使用双引号(“”)表示字符串。单引号(“”)表示字符。因此,将if(Letter!=“”)
更改为if(Letter!=“”)
您正在将字符与字符串进行比较。对象的基本类型
将代码更改为
如果(字母!='')您正在将字符与字符串进行比较。对象的基本类型 将代码更改为
如果(字母!='')如前所述,您不应该使用
字母!=“
,但您可以使用或,正如前面指出的,您不应该使用字母!”“”
,但您可以在Java中使用或,单引号用于字符,双引号用于字符串。作为旁注,请遵循Java编码惯例,使用camelCase作为变量名。@nhahtdh-对大写程序的讽刺建议;-)在Java中,单引号表示字符,双引号表示字符串。作为补充说明,请遵循Java编码惯例,使用camelCase表示变量名。@nhahtdh-对大写程序的讽刺建议;-)我改变了这一点,但现在得到了错误:文本的全小写行是:线程“main”java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1在java.lang.String.charAt(String.java:658)在Capitalize.main(Capitalize.java:16)---jGRASP wedge2:进程的退出代码是1。您的问题是:(int i=0;i
当i==0
时,您正在抓取charAt(-1)
。谢谢。这是有道理的,但我对实际的代码部分有点困惑。我以为我的逻辑正确,但得到的输出完全错误。任何帮助都将非常感谢使用布尔标志。我刚刚在一分钟前更改了它,但现在得到错误:文本的全小写行是:线程“main”中的abceexceptionjava.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1在java.lang.String.charAt(String.java:658)在Capitalize.main(Capitalize.java:16)---jGRASP wedge2:进程的退出代码是1。您的问题是:for(int i=0;i
当i==0
时,您正在抓取字符(-1)
。谢谢。这是有道理的,但我对实际的代码部分有点困惑。我原以为我的逻辑正确,但得到的输出完全错误。任何帮助都将非常感谢使用布尔标志。我刚在一分钟前。我的问题是,我以为这就是问题所在,但我的程序仍然会出错。例外n在线程“main”java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1在java.lang.String.charAt(String.java:658)在Capitalize.main(Capitalize.java:16)`char Letter=TextLine.charAt(i-1)`:在第一个位置