项目中需要配置excel模板,将excel每一列标题复制下来,放到数组中,由于工作量巨大,想写个小程序辅助,但是excel标题都是这样的,例如Store Name,中间带空格,写了 一个去空格的小程序,赋值进去再粘贴出来,就变成了StoreName(去掉了中间的空格),但是本人希望出来变成这样子storeName,首字母小写,于是又加了截取字符串功能将首字母转小写再拼接上去,问题是,在控制台接收输入的时候,本人发现Store Name,编译器会将其当成两个字符串来处理。只去空格还没问题,要转小写再拼接,就出问题了。贴上代码
package com.test; import java.util.Scanner; /** * Test.java */ public class Test { public static void main(String[] args) { Scanner input=new Scanner(System.in); while(true){ String a = input.next();//接收输入的字符串 String b = a.trim();//去空格 String d = (String) b.subSequence(0, 1);//第一个字母 String e = b.substring(1, b.length());//第二个字母到最后 System.out.println("首字母为:"+d); System.out.println("第二个字母到最后:"+e); } } }
输入Store Name回车,打印出的结果是:
首字母为:S
第二个字母到最后:tore
首字母为:N
第二个字母到最后:ame
可以看出编译器将Store 与Name当作两个字符串来处理了
本人希望出现的结果:
首字母为:S
第二个字母到最后:toreName
求指导答
解决方案
10
将input.next()换成input.nextLine()即可
10
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
while (true) {
String a = input.nextLine();// 接收输入的字符串
String b = a.trim();// 去空格
String d = (String) b.subSequence(0, 1);// 第一个字母
String e = b.substring(1, b.length());// 第二个字母到最后
System.out.println(“首字母为:” + d);
System.out.println(“第二个字母到最后:” + e);
}
}
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
while (true) {
String a = input.nextLine();// 接收输入的字符串
String b = a.trim();// 去空格
String d = (String) b.subSequence(0, 1);// 第一个字母
String e = b.substring(1, b.length());// 第二个字母到最后
System.out.println(“首字母为:” + d);
System.out.println(“第二个字母到最后:” + e);
}
}