我在下面的Java代码中使用<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="240dp"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="#FF4548"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<RelativeLayout
android:id="@+id/slidelayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="?attr/actionBarSize"
android:background="#fff">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.viewpagerindicator.CirclePageIndicator
android:id="@+id/indicator"
android:layout_width="fill_parent"
android:layout_height="10dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="7dp" />
</RelativeLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:paddingLeft="3dp"
android:layout_gravity="top"
android:paddingRight="3dp"
app:layout_collapseMode="pin">
<ImageView
android:id="@+id/imgsearch"
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="2dp"
android:paddingBottom="5dp"
android:src="@drawable/ic_action_search"
android:visibility="visible" />
<ImageView
android:id="@+id/imgshare"
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentTop="true"
android:layout_marginLeft="5dp"
android:layout_toRightOf="@+id/imgsearch"
android:paddingBottom="5dp"
android:src="@drawable/ic_action_share"
android:visibility="visible" />
<ImageView
android:id="@+id/imglike"
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentTop="true"
android:layout_marginLeft="5dp"
android:layout_toRightOf="@+id/imgshare"
android:paddingBottom="5dp"
android:src="@drawable/ic_action_favorite"
android:visibility="visible" />
<RelativeLayout
android:id="@+id/sabadkharidslayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/imglike"
android:visibility="gone">
<ImageView
android:id="@+id/img_sabad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:src="@drawable/sabad" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="15dp"
android:layout_marginRight="10dp"
android:background="@drawable/circle">
<TextView
android:id="@+id/text_numkharid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:gravity="right"
android:includeFontPadding="false"
android:singleLine="true"
android:textColor="#fff"
android:textSize="12sp" />
</RelativeLayout>
</RelativeLayout>
<ImageView
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="5dp"
android:paddingBottom="5dp"
android:rotationY="180"
android:src="@drawable/ic_action_back"
android:visibility="visible" />
<TextView
android:id="@+id/textVieww1"
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:layout_marginRight="5dp"
android:layout_toLeftOf="@+id/back"
android:gravity="right|center_vertical"
android:shadowColor="#eee"
android:shadowDx="2"
android:shadowDy="2"
android:shadowRadius="4"
android:singleLine="true"
android:textColor="#fff"
android:textSize="17sp" />
<AutoCompleteTextView
android:id="@+id/editText1"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:layout_toLeftOf="@+id/textVieww1"
android:layout_toRightOf="@+id/sabadkharidslayout"
android:background="#fff"
android:completionThreshold="1"
android:dropDownWidth="match_parent"
android:ems="10"
android:singleLine="true"
android:gravity="right"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:textSize="12sp"
android:visibility="gone">
<requestFocus />
</AutoCompleteTextView>
</RelativeLayout>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
方法,我用readFile()
实现了逐行读取文件并分成五个不同的对象,但是当它到达{ {1}}输入它会引发Scanner
错误。是什么导致了这个错误?我尝试了一些不同的东西,我刚刚将boolean
添加到导致此错误的扫描程序,但在使用分隔符之前,它没有关闭InputMismatchException
。我做错了什么?
我的文件数据如下所示:
usedelimiter(",")
我的方法如下:
Scanner
这是完整的堆栈跟踪:
Chevy, Malibu, 1999, 10000, true,
Ford, Focus, 2001, 5000, false,
Porshe, Carrera, 1995, 35000, true,
Honda, Insight, 2014, 18000, true,
Hyundai, Elantra, 1998, 9000, true,
end
答案 0 :(得分:1)
让我们看一下你文件的第一行:
Chevy,Malibu,1999,10000,true,
如您所见,最后一个字符是:,
现在让我们看看你的分隔符:scCars.useDelimiter(", ");
。正如您所看到的,它需要逗号和一个空格。因此,我们知道文件每一行的最后一个逗号是不是一个有效的分隔符。因此,扫描程序将显示true,
(或false,
)而不是true
(或false
)。
要解决此问题,请将分隔符更改为scCars.useDelimiter(",\\s*");
以接受逗号和任意数量的空格。如果您不想拆分包含多个空格的文字,也可以使用scCars.useDelimiter(",\\s?");
。
答案 1 :(得分:1)
这种情况发生了,因为每行中的最后一部分只有,
而不是,<whitespace>
,您已在扫描仪分隔符中指定了这一部分。我建议你做出以下改动。
scCars.useDelimiter(",");
make = scCars.next().trim();
model = scCars.next().trim();
year = Integer.parseInt(scCars.next().trim());
price = Double.parseDouble(scCars.next().trim());
happy = Boolean.parseBoolean(scCars.next().trim());
或强>
您可以使用regex
来处理它。处理零个或多个空格的正则表达式为,\\s*
以及一个逗号。然后你只需要对你的分隔符进行一次转换。
scCars.useDelimiter(",\\s*");
答案 2 :(得分:0)
这是您的数据集格式和分隔符的问题。
您可以删除','之后的空格并使用
sc. useDelimiter(',');
只需确保您使用的分隔符,分隔的值具有您从扫描仪中询问的类型所需的精确格式
e.g。
sc.nextInt() must have an int to return
sc.nextBoolean() must have a boolean to return
在你的情况下 sc.nextBoolean() 不正在工作,因为下一个值是'true,'这不是一个有效的布尔值< / p>