- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含日期连字符的文件。
例如:
Abey F 5-5-1996 0 0 0 0John M 5-5-1997 10 10 10 10
/image/Jfna5.png "example"
The problem I am having is trying to print put everything in one line.
I have tired:
line.useDelimiter("[\t \r]");
line.useDelimiter("-"); //to remove the hypens.
Scanner input = new Scanner(new FileReader(filename));
while(input.hasNextLine()) {
Scanner line = new Scanner(input.nextLine());
line.useDelimiter("[\t \r]"); // Tab (\t) and/or space ( ) and/or carriage return (\r) delimited file
line.useDelimiter ("-");
lineno++;
System.out.println("--------READING-LINE-" + lineno + "--------");
while(line.hasNext())
System.out.println(line.next());
line.close();
待打印
AbeyF5519960000--------READING-LINE-2--------JohnM55199710101010
/image/1IZlM.png “预期”
最佳答案
我假设您想要在每个制表符、空格、行分隔符上进行拆分(可能不仅是 \r
,还包括 \n
或 \r\n
序列)和连字符 -
。
您的方法的第一个问题是 line.useDelimiter("-");
替换了之前选择的分隔符 line.useDelimiter("[\t\r ]");
。
您需要提供一个结合这两种设置的分隔符。棘手的部分是 [..]
内的连字符 -
将是元字符,它不会代表 -
但指示范围。这是因为Scanner期望regex(正则表达式)构成分隔符,但在regex character class中([...]
事物)允许用户提供 范围 字符,如 a-z
(而不是编写 [abcde.. .z]
),因此连字符 -
被视为特殊字符。
为了使其成为字面,我们需要在[..]
内转义-
它。为此,我们可以:
\
(在字符串文字中需要写为 "\\"
),[-...]
[...-]
。 但更安全的选择是使用 "\\-"
显式转义它,因为它允许您安全地修改该正则表达式而不会出现任何意外(例如,如果您有像 [a -ek-]
,如果你想添加 z
你可能会写 [a-ek-z]
但这不会代表 a-e
或k
或-
或z
但a-z
或k-z
。如您所见,如果您 [a-ek-\]
添加单个字母 z
作为分隔符,将导致正则表达式 [a-ek\-z]
这就是我们所追求的)。
所以你可以使用 line.useDelimiter("[\t\r\\-]");
或者还可以处理其他行分隔符,例如 \n
或 \r\n
sequence 使用 \R
(不能在字符类内部使用,因为它不仅表示单个字符,还表示 \r\n
序列)。因此,要使用它,我们需要使用 |
(OR 运算符),例如
line.useDelimiter("[\t\\-]|\\R");
关于java - 在 Java 中使用 useDelimiter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55874419/
根据java: public Scanner useDelimiter(String pattern) Sets this scanner's delimiting pattern to a patt
给出下面的代码,它输出: Feed a chunk of data here: I have found: 0 words; 0 ints; 0 booleans; 如果我键入
我在从文本文件读取数据时遇到问题。我正在使用 useDelimiter 将字符串的一部分存储到映射中。我使用的模式稍后将在文件中重复,并且扫描仪将不会进一步读取。 示例文本, a:1、(值)、b:2、
所以我查看了几个相关的问题,但似乎仍然找不到我的答案(我猜是因为它很具体)。我正在尝试在 Java 中使用 Scanner.useDelimiter 方法,但无法让它正常工作...这是我的困境...
我正在尝试使用 useDelimiters() 按特定分隔符而不是按每个新行分割文本文件。例如,在下面的代码中,我有一个文本文件输入,我想在句号处将其分成两个: hellothere stop.her
useDelimiter 无法识别竖线,但可以识别其他字符。 这不起作用: scan.useDelimiter("|"); 这确实有效: scan.useDelimiter(","); 其余代码: S
我有以下代码,请记住我刚刚开始学习一门语言,并且一直在寻找相当简单的练习。欢迎编码礼仪和批评。 import java.util.*; import java.io.*; public class T
所以,我想做的是从文本文件中获取信息, For example, 134567H;Gabriel;24/12/1994;67;78;89 然后我在下拉列表中仅显示第一个管理员号码,而不是整
我有一串 float ,例如 1.0000\0.0000\0.0000\0.00000\1.0000\0.0000\0.0000 我需要解析它。我使用 Java 扫描仪并使用反斜杠作为分隔符。它已经以
例如我有这个代码 String input = "1 fish 2 fish red fish blue fish"; Scanner s = new Scanner(input).useDel
我正在尝试创建一个程序,使用分隔符分隔字符串输入(Windows 路径)。然而我的程序似乎忽略了分隔符。 我期待的结果: Skriv in sökvägen: C://Windows/System/
这个问题已经有答案了: Read CSV with Scanner() (8 个回答) 已关闭10 年前。 我找不到解决此问题的正确方法: 我有一个 .csv 文件,其中包含最后一个值以逗号分隔的值列
我想计算两个日期之间的天数,但我在解析输入流时遇到问题...... 如果我输入“22 1 2013”这样的日期,效果很好,但我遇到了困难: 2013年1月22日 2013年1月22日 2013年1
我需要将特定 Scanner 对象的分隔符设置为:换行符、任意数量的连续空格、逗号字符和美元符号字符。 我正在使用此代码: Scanner s = new Scanner("just\ndo
我环顾四周,但找不到任何有用的东西。基本上我正在编写一段代码来获取数字列表作为输入。但是我希望用逗号作为分隔符输入数字。 这是我的代码片段。 import java.util.Scanner; pub
这个问题在这里已经有了答案: How do I use a delimiter with Scanner.useDelimiter in Java? (3 个答案) 关闭 5 年前。 这就是我到目前
我正在开发一个Java项目,我试图让useDelimiter删除除“=”和“,”之间的文本之外的所有内容。例如,在文件的第一行我想保留“ThermostatNight”。 文本文件如下所示: E
我有一个如下所示的文本文件: Event=ThermostatNight,time=0 Event=LightOn,time=2000 Event=WaterOff,time=10000 Event=
当我们像这样将字符串传递给扫描器时,我们得到“ab”作为控制台输出: public static void main(String []args){ Scanner sc = new Sca
希望解析以下文本文件: 示例文本文件: text entered by useradditional text entered by user 我想解析上面的文本,这样我就可以拥有三个变量: v1 =
我是一名优秀的程序员,十分优秀!