在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:
(1)把每个单词的首字母变为大写。
(2)把数字与字母之间用下划线字符(_)分开,使得更清晰;
(3)把单词中间有多个空格的调整为1个空格
package work4;
import org.omg.CosNaming.NamingContextExtPackage.StringNameHelper;
public class Zf {
private String string;
public Zf(String string) {
this.string = string;
}
public Zf() {}
//将字符串的首字母变为大写
public String up()
{
String[] s=string.split(" ");//现将字符串按空格转化成字符数组
String str = new String();
for(int i=0;i<s.length;i++)
{
str += s[i].substring(0, 1).toUpperCase()+s[i].substring(1)+" ";
}
return str;
}
//把单词与数字之间用下划线分开
public String trans()
{
for(int i=0;i<string.length()-1;i++)//长度后面-1
{
char a=string.charAt(i);
char b=string.charAt(i+1);
if((Character.isDigit(a)&&Character.isLetter(b))||(Character.isDigit(b)&&Character.isLetter(a)))
{
string=string.substring(0, i+1)+"_"+string.substring(i+1);
}
}
return string;
}
//把单词之间多个空格调整为一个空格
public String adjust()
{
String ss=string.replaceAll(" +", " ");
return ss;
}
}
package work4;
import java.util.Scanner;
public class Sop {
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
String string;
string=cin.nextLine();
Zf z =new Zf(string);
//System.out.println(z.up());
//System.out.println(z.trans());
System.out.println(z.adjust());
}
}
注意:
1,字符串化为数组有两种形式,一种是字符数组 ,另一种是字符串数组
String string="how are you";
(1) 字符数组的格式化为 char [] a=string.toCharArray();
意思是将字符串按字母拆开,每一个字母是一个字符数组的一个元素
(2)字符串数组的格式为 String[] s=string.split(" ");
意思是将字符串按单词拆开,每一个单词是一个字符串数组的一个元素
2,for循环遍历字符串数组的元素时,length的长度要减一,因为在Java中,数组的存放位置到最后一个元素的位置加一
3,把单词之间的多个空格改为一个空格的关键代码
String ss=string.replaceAll(" +", " ");
意思是将多个空格的位置用一个空格代替,并将下一个单词连接过来