Java:Soundex算法

时间:2016-03-21 20:04:53

标签: java input

我想说我是Java的新手,所以请不要因为我的杂乱代码而讨厌我。如果您不在键盘上输入任何内容,则不会重复System.out.print("输入您的姓名")。循环四处走动,但不再重复此声明。如果您输入一些字母,则会执行print语句,但我不知道原因。这是一张让它更清晰的图片。可能这是我犯的一个非常容易的错误,但我无法看到它。 感谢您提供任何帮助或线索如何解决此问题。

它的样子:

Thats how it looks like

我想要的是:

Thats how I want it to be

package loop;

import java.util.Scanner;
public class while_loop 
{
    public static void main(String[] args) 
    {
        String word2 = null;
        boolean T_F = true;
        while (T_F == true)
        {
            System.out.print("Enter your name:");
            Scanner in = new Scanner(System.in);
            word2 = in.next().toUpperCase();
            if (word2 != null && word2.length() > 3)
            {
                in.close();
                T_F = false;
                System.out.println("Done");
            }
        }
    }
}
好吧,好吧解决了。小小的错误。

word2 = in.next().toUpperCase();

应该是

word2 = in.nextLine().toUpperCase();

1 个答案:

答案 0 :(得分:0)

你的if语句应该是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <android.support.v7.widget.CardView
        android:id="@+id/card_view1"
        android:layout_width="150dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        android:layout_margin="5dp"
        card_view:cardCornerRadius="2dp"
        card_view:contentPadding="10dp">

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <ImageView
                android:id="@+id/img_appicon"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_alignLeft="@+id/tv_appname"
                android:layout_alignParentTop="true"
                android:layout_alignStart="@+id/tv_appname" />

            <TextView
                android:id="@+id/tv_appname"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/img_appicon"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="27dp"
                android:text="App Name"
                android:textAppearance="?android:attr/textAppearanceMedium" />
        </RelativeLayout>
    </android.support.v7.widget.CardView>

    <android.support.v7.widget.CardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view2"
        android:layout_width="150dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        android:layout_margin="5dp"
        card_view:cardCornerRadius="2dp"
        card_view:contentPadding="10dp">

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <ImageView
                android:id="@+id/img_appicon2"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_alignLeft="@+id/tv_appname2"
                android:layout_alignParentTop="true"
                android:layout_alignStart="@+id/tv_appname2" />

            <TextView
                android:id="@+id/tv_appname2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/img_appicon2"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="27dp"
                android:text="App Name"
                android:textAppearance="?android:attr/textAppearanceMedium" />
        </RelativeLayout>
    </android.support.v7.widget.CardView>
</LinearLayout>

Scanner.next()只会返回空格之前的内容。

Scanner.nextLine()会在读取当前行后自动将扫描仪向下移动。