Scanner i=new Scanner(System.in);
System.out.println("Enter an integer: ");
int in=i.nextInt();
System.out.println("Enter an floating point number: ");
double d=i.nextDouble();
System.out.println("Enter a string: ");
String str=i.next();
System.out.printf("%s%n,Sum of%2d and %.2f is %.2f%n",str,in ,d,in+d);
我的问题是格式化通过扫描仪输入的字符串。我试图输入“ Result is”,但printf()似乎只看到字符串的“
Result”部分,那么空白命令是什么?谢谢
有几种可能的解决方案,但我相信以下内容将为您提供与其他输入一致的行为:
System.out.println("Enter an floating point number: ");
double d = i.nextDouble();
i.skip("((?<!\\R)\\s)*"); // skip whitespace, stopping after any newline
System.out.println("Enter a string: ");
String str = i.nextLine();
如果需要,这种方法将允许您在一行上输入所有输入。
例如:
1 1.2结果是
但是,如果您确实希望用户Enter
在每次输入后都按一下,则使用Scanner的nextLine()方法读取所有输入,然后根据需要进行解析(使用Integer.parseInt等)将是最一致的。
Java 9
由于Java 9中的错误,(?> ... )
必须在换行匹配器周围添加原子分组\R
。有关详细信息,请参见错误报告JDK-8176983。
i.skip("((?<!(?>\\R))\\s)*"); // skip whitespace, stopping after any newline
// Compatibility Note: Java 9 safe use of \R
此代码也可以正常工作,并且如果用于Java
8,也不会引起任何问题,因此实际上,我建议您在代码中使用此变通版本,只是为了安全起见(例如,如果有人可以复制/粘贴或将目标设置为其他目标) JDK)。
Java 7及更早版本
换行匹配器\R
在Java-8或更高版本中可用。在该版本之前,您将必须使用“等效”模式,\u000D\u000A|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029]
但要使其真正等效,实际上必须将其包装在原子分组中(?> ... )
。有关详细信息,请参见文档错误报告JDK-8176029。
i.skip("((?<!(?>\\u000D\\u000A|[\\u000A\\u000B\\u000C\\u000D\\u0085\\u2028\\u2029]))\\s)*"); // skip whitespace, stopping after any newline
我的问题是格式化通过扫描仪输入的字符串。我试图输入“Result is”,但printf()似乎只看到字符串的“Result”部分,那么空格的命令是什么呢?thx公司
我有一张这样的地图 我可以得到分数作为整数以及"NA",所以我映射类型为字符串,但在发布数据到索引我得到数字格式异常。 例如: 如果我将第一个数据发布为整数,后跟“NA”。我得到了这些例外。 检查日志文件时,我发现以下错误: [2016-08-29 15:19:01]elasticlog.警告:响应[{\"错误\":{\"root_cause类型\":\"mapper_parsing_except
Kotlin有一个很好的特性,叫做字符串模板。我真的很喜欢。 但是否可以在模板中设置任何格式?例如,我想在kotlin中设置字符串模板中的Double格式,至少要在小数分隔符后设置一些位数:
现在的Rust资料,无论是Book还是RustByExample都没有统一而完全的介绍Rust的操作符。一个很重要的原因就是,Rust的操作符号和C++大部分都是一模一样的。 一元操作符 顾名思义,一元操作符是专门对一个Rust元素进行操纵的操作符,主要包括以下几个: -: 取负,专门用于数值类型。 *: 解引用。这是一个很有用的符号,和Deref(DerefMut)这个trait关联密切。 !:
问题内容: 下面是我以前如何将浮点数截断到两位小数 我检查了文档和电子书,但无法弄清楚。谢谢! 问题答案: 根据David的回答,到目前为止,我最好的解决方案是 我认为这是最类似于Swift的解决方案,将格式化操作直接与数据类型相关联。可能是某处有一个内置的格式化操作库,或者它可能很快就会发布。请记住,该语言仍处于测试阶段。
问题内容: 我想知道使用模板字符串而不是新的高级字符串格式是否有优势? 问题答案: 模板要比通常的字符串格式更简单,但会降低表达力。PEP 292 的基本原理将模板与Python的-style字符串格式进行了比较: Python当前支持基于C的‘%’格式字符的字符串替换语法。尽管格式非常丰富,但即使对于有经验的Python程序员,%格式的代码也容易出错。一个常见的错误是忽略了尾随的格式字符,例如i