我试图将用户输入的输入转到小写,然后将输入中的第一个字符放到大写字母中。例如,如果我输入aRseNAL作为我的第一个输入,我想格式化输入,以便它将放置" Arsenal"在data.txt文件中,我还想知道是否有一种方法可以将每个第一个字符设置为大写,如果有一个以上的单词,即。 mAN uNiTeD格式化为Man United以写入文件。
我在下面的代码是我尝试过的,我无法让它工作。任何建议或帮助将不胜感激。
import java.io.*;
import javax.swing.*;
public class write
{
public static void main(String[] args) throws IOException
{
FileWriter aFileWriter = new FileWriter("data.txt");
PrintWriter out = new PrintWriter(aFileWriter);
String team = "";
for(int i = 1; i <= 5; i++)
{
boolean isTeam = true;
while(isTeam)
{
team = JOptionPane.showInputDialog(null, "Enter a team: ");
if(team == null || team.equals(""))
JOptionPane.showMessageDialog(null, "Please enter a team.");
else
isTeam = false;
}
team.toLowerCase(); //Put everything to lower-case.
team.substring(0,1).toUpperCase(); //Put the first character to upper-case.
out.println(i + "," + team);
}
out.close();
aFileWriter.close();
}
}
答案 0 :(得分:0)
在Java中,字符串是不可变的(无法更改),因此substring
和toLowerCase
等方法会生成新字符串 - 它们不会修改现有字符串。
所以而不是:
team.toLowerCase();
team.substring(0,1).toUpperCase();
out.println(team);
你需要这样的东西:
String first = team.substring(0,1).toUpperCase();
String rest = team.substring(1,team.length()).toLowerCase();
out.println(first + rest);
答案 1 :(得分:0)
与建议的@DNA类似但如果String length为1则会抛出异常。因此添加了相同的检查。
String output = team.substring(0,1).toUpperCase();
// if team length is >1 then only put 2nd part
if (team.length()>1) {
output = output+ team.substring(1,team.length()).toLowerCase();
}
out.println(i + "," + output);