删除空格并大写用户输入
Remove whitespaces and capitalize user input
我编写了代码,因此它会询问用户各种问题,如果 input.trim().isEmpty()
将向用户发送一条消息,并要求用户再次输入。因此,如果用户只写空格,则会给出消息。如果用户给出几个空格和一些字符,它会接受。
现在的问题是我想把单词的第一个字母大写,但它确实不起作用。假设用户的输入以字母开头,那么该字母将被大写。但是如果有空格,它根本不会大写。
所以如果输入是:
katka
输出为:
katka
另一个例子:
katka
输出为:
Katka
代码是:
String askWork = input.nextLine();
String workplace = askWork.trim().substring(0,1).toUpperCase()
+ askWork.substring(1);
while (askWork.trim().isEmpty()){
字符串 askWork = input.nextLine();
String workplace = askWork.trim().substring(0,1).toUpperCase()
+ askWork.substring(1);
}
我尝试了不同的方法但没有成功。
在开始操作其内容之前,您需要trim输入:
String askWork = input.nextLine().trim();
String workplace = askWork.substring(0,1).toUpperCase() + askWork.substring(1);
在尝试将其大写之前,尝试修剪您的输入以删除空格。
String askWork = input.nextLine().trim();
String capitalized = askWork.substring(0, 1).toUpperCase() + askWork.substring(1)
但是,如果输入只有空格,这将导致 IndexOutOfBoundsException
,因为在调用 trim()
之后 askWork
被设置为空字符串(""
) 然后您尝试访问空(长度为 0)字符串的第一个字符。
String askWork = input.nextLine().trim();
if(askWork.isEmpty()) {
// Display error
JOptionPane.showMessageDialog(null, "Bad!");
else {
String capitalized = askWork.substring(0, 1).toUpperCase() + askWork.substring(1)
JOptionPane.showMessageDialog(null, "It worked! -- " + capitalized);
}
那个trim()
method on String
will clear all leading and trailing whitespace. The trimmed String
must become your new String
so that all indices you refer to after that are accurate. You will no longer need the replaceAll("\s","")
. You also need logic to test for empty input. You use the isEmpty()
method on String
。我写了一个玩具main()
,它不断地询问一个词,然后在得到一个词后将其大写并打印出来。它将测试空白输入、无字符输入等。
public static void main(String[] args) throws Exception {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String askWork = "";
while (askWork.isEmpty()) {
System.out.println("Enter a word:");
askWork = input.readLine().trim();
}
String workPlace = askWork.substring(0,1).toUpperCase() + askWork.substring(1);
System.out.println(workPlace);
}
另一种没有子字符串的解决方案:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String askWork = input.nextLine().trim();
while (askWork.isEmpty())
askWork = input.nextLine().trim();
char[] workChars = askWork.toCharArray();
workChars[0] = workChars[0].toUpperCase();
String workplace = String.valueOf(workChars);
// Work with workplace
input.close();
}
问题是因为空格,因为您在转换为大写时引用的所有索引都不准确。
所以首先 trim() 字符串,这样你就可以清除所有前导和尾随空格,然后将其大写。
最好检查空字符串和所有空格以避免异常。
String askWork = input.nextLine().trim();
String capitalized = askWork.substring(0, 1).toUpperCase() + askWork.substring(1)
我编写了代码,因此它会询问用户各种问题,如果 input.trim().isEmpty()
将向用户发送一条消息,并要求用户再次输入。因此,如果用户只写空格,则会给出消息。如果用户给出几个空格和一些字符,它会接受。
现在的问题是我想把单词的第一个字母大写,但它确实不起作用。假设用户的输入以字母开头,那么该字母将被大写。但是如果有空格,它根本不会大写。
所以如果输入是:
katka
输出为:
katka
另一个例子:
katka
输出为:
Katka
代码是:
String askWork = input.nextLine();
String workplace = askWork.trim().substring(0,1).toUpperCase()
+ askWork.substring(1);
while (askWork.trim().isEmpty()){ 字符串 askWork = input.nextLine();
String workplace = askWork.trim().substring(0,1).toUpperCase()
+ askWork.substring(1);
}
我尝试了不同的方法但没有成功。
在开始操作其内容之前,您需要trim输入:
String askWork = input.nextLine().trim();
String workplace = askWork.substring(0,1).toUpperCase() + askWork.substring(1);
在尝试将其大写之前,尝试修剪您的输入以删除空格。
String askWork = input.nextLine().trim();
String capitalized = askWork.substring(0, 1).toUpperCase() + askWork.substring(1)
但是,如果输入只有空格,这将导致 IndexOutOfBoundsException
,因为在调用 trim()
之后 askWork
被设置为空字符串(""
) 然后您尝试访问空(长度为 0)字符串的第一个字符。
String askWork = input.nextLine().trim();
if(askWork.isEmpty()) {
// Display error
JOptionPane.showMessageDialog(null, "Bad!");
else {
String capitalized = askWork.substring(0, 1).toUpperCase() + askWork.substring(1)
JOptionPane.showMessageDialog(null, "It worked! -- " + capitalized);
}
那个trim()
method on String
will clear all leading and trailing whitespace. The trimmed String
must become your new String
so that all indices you refer to after that are accurate. You will no longer need the replaceAll("\s","")
. You also need logic to test for empty input. You use the isEmpty()
method on String
。我写了一个玩具main()
,它不断地询问一个词,然后在得到一个词后将其大写并打印出来。它将测试空白输入、无字符输入等。
public static void main(String[] args) throws Exception {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String askWork = "";
while (askWork.isEmpty()) {
System.out.println("Enter a word:");
askWork = input.readLine().trim();
}
String workPlace = askWork.substring(0,1).toUpperCase() + askWork.substring(1);
System.out.println(workPlace);
}
另一种没有子字符串的解决方案:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String askWork = input.nextLine().trim();
while (askWork.isEmpty())
askWork = input.nextLine().trim();
char[] workChars = askWork.toCharArray();
workChars[0] = workChars[0].toUpperCase();
String workplace = String.valueOf(workChars);
// Work with workplace
input.close();
}
问题是因为空格,因为您在转换为大写时引用的所有索引都不准确。 所以首先 trim() 字符串,这样你就可以清除所有前导和尾随空格,然后将其大写。 最好检查空字符串和所有空格以避免异常。
String askWork = input.nextLine().trim();
String capitalized = askWork.substring(0, 1).toUpperCase() + askWork.substring(1)