- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个 Java 程序来分析文本文件中字符串数组中的每个字符串,如果数字解析为 double ,则程序会打印它前面的单词和后面的单词。我似乎无法找出如何解析字符串数组的每个元素。目前它只会打印第一个数字和后面的单词,而不是前面的单词。希望有人能帮忙。
我的文本文件如下:
假设 49 个人正在切蛋糕,将其分给 5 个人。我给自己切了一大块,占 33.3%整个蛋糕。现在轮到你切一 block 蛋糕了。你也会削减 33.3% 的份额吗?或者你会把剩下的 66.6% 的蛋糕平分 4 份比较公平?你要切多大的片?
这是我的代码:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class NumberSearch {
public static void main(String args[]) throws FileNotFoundException {
//creating File instance to reference text file in Java
// String filedirect = JOptionPane.showInputDialog(null, "Enter your file");
File text = new File("cakeQuestion2.txt");
//Creating Scanner instance to read File in Java
Scanner scnr = new Scanner(text);
//Reading each line of file using Scanner class
int lineNumber = 1;
while(scnr.hasNextLine())
{
String line = scnr.nextLine();
lineNumber++;
//Finding words
String[] sp = line.split(" +"); // "+" for multiple spaces
for (int i = 1; i < sp.length; i++)
{
{
double d = Double.parseDouble(sp[i]);
// System.out.println(+ d);
if (isDouble(sp[i]))
{
// have to check for ArrayIndexOutOfBoundsException
String surr = (i-2 > 0 ? " " + sp[i-2]+" " : "") +
sp[i] +
(i+1 < sp.length ? " "+sp[i+1] : "");
System.out.println(surr);
}
}}
}
}
public static boolean isDouble( String str )
{
try{
Double.parseDouble( str );
return true;
}
catch( Exception e ){
return false;
}}}
最佳答案
嗯……你的代码对于任务来说似乎过于冗长和复杂。
检查这个片段:
public static void main(String args[]) throws FileNotFoundException {
String line = "Suppose 49 are slicing a cake to divide it between 5 people. I cut myself a big slice, consisting of 33.3 percent of the whole cake. Now it is your turn to cut a slice of cake. Will you also cut a 33.3 percent slice? Or will you be fairer and divide the remaining 66.6 percent of the cake into 4 even parts? How big a slice will you cut?";
String[] sp = line.split(" +"); // "+" for multiple spaces
final String SPACE = " ";
// loop over the data
for (int i = 0; i < sp.length; i++) {
try {
// if exception is not raised, IS A DOUBLE!
Double.parseDouble(sp[i]);
// if is not first position print previous word (avoid negative index)
if (i > 0)
System.out.print(sp[i - 1] + SPACE);
// print number itself
System.out.print(sp[i] + SPACE);
// if is not last position print previous word (avoid IOOBE)
if (i < sp.length - 1)
System.out.print(sp[i + 1]);
// next line!
System.out.println();
} catch (NumberFormatException ex) {
// if is not a number, not our problem!
}
}
}
结果:
Suppose 49 are
between 5 people.
of 33.3 percent
a 33.3 percent
remaining 66.6 percent
into 4 even
关于java - 字符串数组的 parseDouble 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40468500/
我正在 Android Studio 中使用 java,并尝试将 TextView 中的字符串转换为 double 型,以便它可以用于计算一个人的收入的一些数字。 方法ParseDouble不允许我以
我正在使用 NumberTextWatcher 进行 EditText 的实时编辑,它对我来说工作得很好,但有些用户报告他们遇到了 NumberException 问题,我认为这是因为 EditTex
我遇到了无法解决的问题。尝试了网站上描述的各种解决方案,但没有结果。我传递的字符串“total”会转换为 30.00,但在 Doubleparse 上它会更改为 30.0 我需要 double 为30
我正在学习 java,我在 youtube 上找到了一个很棒的教程,当尝试根据我的需要调整它时,我遇到了这个问题: 我需要将字符串转换为 double 型,进行一些数学计算,然后用结果填充 TextV
我正在尝试编写一个 Java 程序来分析文本文件中字符串数组中的每个字符串,如果数字解析为 double ,则程序会打印它前面的单词和后面的单词。我似乎无法找出如何解析字符串数组的每个元素。目前它只会
我有以下代码: Scanner in = new Scanner(System.in); while (in.hasNextDouble()) { System.out.println(Dou
我有这个 DecimalFormat: DecimalFormat formatSci = new DecimalFormat("#.#########E0"); 当我有 text.append(fo
我正在尝试制作一个应用程序来计算 CGPA。我已经使用我的数字数据保存在 Double 变量类型中。 执行时显示 java.lang.NumberFormatException: Invalid do
我很想得到第二只眼睛的帮助,因为我一直在努力确定我的代码有什么问题。 在 Eclipse IDE 中,我试图实现一个 Google map Activity ,该 Activity 从 Assets
我正在尝试添加一些资金,我想使用 Double.parseDouble,但我认为该页面无法识别 double.parseDouble。我没有收到错误,但它不会添加或传递值。 这是我的代码。 funct
我有一个 AJAX 请求返回一个 json 对象,其中包含几个值,每个值有两位小数,但由于它是 json,这些值在返回时是字符串。我需要做的是对这些值进行加法运算。只是一个简单的 a+b = c,但它
我正在尝试使用下面的代码将字符串转换为 float 和 double ,但结果不同。 代码: System.out.println(Float.parseFloat("120059389"));
在 JavaScript 中,我有一个 21 位数字,我想解析它。 JavaScript 中是否存在 parseDouble 方法? 最佳答案 不可能在 JavaScript 中原生处理 21 位精度
Double.parseDouble("100a");//按预期得到错误但为什么下面的行没有得到错误 Double.parseDouble("100d"); 请解释一下。 最佳答案 根据源代码,Dou
我有一个实用程序类,可以通过执行以下操作来检查是否为Numeric: public static boolean isNumeric(String text) { try {
当我运行以下程序时: System.out.println(Double.parseDouble("99999999999999") + 1); 我得到:1.0E14 如何禁用自动转换以便获得 100
我每天都会收到大约 3-4 次同样的错误,并且一直没有找到解决此问题的方法。根据堆栈跟踪,错误发生在 Microsoft.VisualBasic 库中,那么我该如何解决这个问题呢? 这是我发送给自己的
public static double centsToDollars(Number cents, int precision) { return BigDecimal.valueOf(cen
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: std::string to float or double 我正在写一个计算器(学习 C++),并且刚刚决
我遇到了奇怪的情况。我正在使用 Double parseDouble 计算数字。在某些情况下,我得到的是额外的 0,而不是 109.1,我得到的是 ... 109.10000001。 我正在尝试从 j
我是一名优秀的程序员,十分优秀!