控制台输入两个字符串如何合并成一个处理?

时间:2023-01-03 18:02:23
项目中需要配置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
求解答

8 个解决方案

#1


将input.next()换成input.nextLine()即可

#2


将String b=a.trim();去掉,
换成String b = a.replace(" ","");

#3


public static void main(String[] args) {
// TODO Auto-generated method stub

             
        Scanner input=new Scanner(System.in);
        while(true){
            String a = input.nextLine();//接收输入的字符串
            System.out.println(a);
            String b = a.replace(" ", "");//去空格
            String d = (String) b.subSequence(0, 1);//第一个字母
            String e = b.substring(1, b.length());//第二个字母到最后
            System.out.println("首字母为:"+d);
        System.out.println("第二个字母到最后:"+e);
        }  
       

}

#4


input.next() ;遇到空格 会自动读取完毕 
nextLine(),这样的话,无论有没有空格还是什么都会读完一行.

#5


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);
}

}

#6


public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (true) {
String a = input.next();// 接收输入的字符串
       a = 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);
}
}

#7


public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        while(true){
            String a = input.nextLine();//接收输入的字符串
            String b = a.replace(" ", "");//去空格
            String d = (String) b.subSequence(0, 1);//第一个字母
            String e = b.substring(1, b.length());//第二个字母到最后
            System.out.println("首字母为:" + d);
            System.out.println("第二个字母到最后:"+e);
        }    
    }

#8


谢谢各位,已搞定,用了nextLine()

#1


将input.next()换成input.nextLine()即可

#2


将String b=a.trim();去掉,
换成String b = a.replace(" ","");

#3


public static void main(String[] args) {
// TODO Auto-generated method stub

             
        Scanner input=new Scanner(System.in);
        while(true){
            String a = input.nextLine();//接收输入的字符串
            System.out.println(a);
            String b = a.replace(" ", "");//去空格
            String d = (String) b.subSequence(0, 1);//第一个字母
            String e = b.substring(1, b.length());//第二个字母到最后
            System.out.println("首字母为:"+d);
        System.out.println("第二个字母到最后:"+e);
        }  
       

}

#4


input.next() ;遇到空格 会自动读取完毕 
nextLine(),这样的话,无论有没有空格还是什么都会读完一行.

#5


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);
}

}

#6


public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (true) {
String a = input.next();// 接收输入的字符串
       a = 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);
}
}

#7


public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        while(true){
            String a = input.nextLine();//接收输入的字符串
            String b = a.replace(" ", "");//去空格
            String d = (String) b.subSequence(0, 1);//第一个字母
            String e = b.substring(1, b.length());//第二个字母到最后
            System.out.println("首字母为:" + d);
            System.out.println("第二个字母到最后:"+e);
        }    
    }

#8


谢谢各位,已搞定,用了nextLine()