如何使用scanner在java中使用带空格的输入作为String

时间:2016-09-15 15:17:56

标签: java

我需要读取使用Scanner作为输入给出的空格(在string之前和String之后) 注意:如果输入中没有给出空格,则不应在输出中添加空格

请找到以下代码:

package practise;

import java.util.Scanner;

public class scanccls {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
         String name= scan.nextLine();
        name+=scan.nextLine();
         scan.close();

        System.out.println("Enter your name"+name); 

    }

}

我期待输出如:

  1. 输入:输入您的姓名:Chandu Aakash
    输出:chandu Aakash

  2. 输入:输入您的姓名:(空格..)Chandu Aakash(空间..)
     输出:(空间..)chandu Aakash(空间..)

7 个答案:

答案 0 :(得分:5)

您的代码运行正常。我只是添加了一些修改:

package practise;

import java.util.Scanner;

public class scanccls {

    public static void main(String[] args) {

        System.out.println("Enter your name:"); 
        Scanner scan = new Scanner(System.in);
        String name="";

        name+=scan.nextLine();
        scan.close();

        System.out.println("Your name is :"+name); 

    }

}

答案 1 :(得分:4)

一个人可以使用定界符功能来分隔您的输入,如下所示。

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in).useDelimiter("\n");
        String input = scanner.next();
        System.out.println(input);
        scanner.close();

    }
}

答案 2 :(得分:1)

import java.util.*;
public class Str{
    public static void main(String[] args) throws IOException
    {
        Scanner scan = new Scanner(System.in);
        int i = scan.nextInt();
        double d = scan.nextDouble();
        String s=" ";
        s= scan.nextLine();
        s+=scan.nextLine();
        scan.close();

        System.out.println("String: "+s);
        System.out.println("Double: "+d);
        System.out.println("Int: "+i);
    }
}

答案 3 :(得分:0)

我在下面使用此功能,以读取所有用户输入格式的文本(包括空格),然后解析为特定的数据类型。

package practice;
import java.io.*;

public class readInputSample{
   public static void main(String[] args) {
        String strVal = getInput("Enter string value: "); // Direct as string
        Integer intVal = Integer.parseInt(getInput("Enter integer value: "));
        Double dblVal = Double.parseDouble(getInput("Enter double value: "));
        Float fltVal = Float.parseFloat(getInput("Enter float value: "));

        System.out.println("String value: " + strVal);
        System.out.println("Integer value: " + intVal);
        System.out.println("Double value: " + dblVal);
        System.out.println("Float value: " + fltVal);
   }

   // Special Function to read all user input
   private static String getInput(String prompt){
      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));

      System.out.print(prompt);
      System.out.flush();

      try{
          return stdin.readLine();
      } catch (Exception e){
        return "Error: " + e.getMessage();
      }
    }
}

答案 4 :(得分:0)

out_marginLeft="50dp"
            android:layout_marginTop="50dp"
            android:layout_marginRight="50dp"
            android:gravity="center"
            android:orientation="vertical">

            <ProgressBar
                android:id="@+id/progressBar"
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_above="@+id/txtProgress"
                android:layout_centerHorizontal="true"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:progress="50"
                android:progressTint="@android:color/black" />

            <TextView
                android:id="@+id/txtProgress"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:text="Progress"
                android:textColor="@android:color/black" />
        </LinearLayout>  

Java

答案 5 :(得分:0)

/ @esprittn解决方案不起作用。 /

我的解决方案:

while(scan.hasNext()){
name+=scan.nextLine();
}

答案 6 :(得分:0)

我已经对您的代码进行了一些更改,此代码可以正常运行

package practise;

import java.util.Scanner;

public class scanccls {

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

        System.out.println("Enter your name:"); 
        Scanner scan = new Scanner(System.in);
        String name="";

        name+=scan.nextLine();
        scan.close();

        System.out.println("Your name is :"+name); 

    }

}