java - Java中如何从字符串中提取单词

标签 java string substring extract

我导入了一个文件并将其转换为名为 readFile 的字符串。该文件包含两行:

qwertyuiop00%
qwertyuiop

我已经使用以下方法从字符串中提取了“00”: 字符串编号 = readFile.substring(11, 13);

我现在想提取“qwertyuiop”中的“ert”和“uio” 当我尝试使用与第一个相同的方法时,如下所示:

String e = readFile.substring(16, 19);
String u = readFile.substring(20, 23);

并尝试使用:

System.out.println(e + "and" + u);

它说字符串索引超出范围。

我该如何解决这个问题? 是因为我想从字符串中提取的接下来的两个单词在第二行吗? 如果是这样,我如何只提取第二行? 我想保持基本,谢谢。

更新: 结果只有文件的第一行被读取,有谁知道如何使它读取两行?

最佳答案

如果您计算每个字符串的字符总数,它们会比您输入的索引多。

qwertuiop00% 是 13 个字符。对字符串调用 .length() 方法来验证长度是否是您期望的长度。

我会在之前添加以下内容进行调试:

System.out.println(readFile);
System.out.println(readFile.length());

注意:

qwertyuiop00% qwertyuiop 为 24 个字符,因为空格也算作一个字符。当然,除非你没有 23 个字符的空间,并且你的索引是 0 到 22

注2:

我要求解析器代码,因为我怀疑您使用通常的代码,如下所示:

while ((line = reader.readLine()) != null)

您需要将这些行连接成一个字符串(尽管这不是最好的方法)。

参见:How do I create a Java string from the contents of a file?

关于java - Java中如何从字符串中提取单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26508762/

相关文章:

java - JavaFX tableview 中消失的水平网格线

java - 单击运行时获取同一文件的多个选项

string - 在 MATLAB 中将长字符串拆分为子字符串的最有效方法

python pandas 基于列值的子字符串

java - KafkaAvroDeserializer 不返回 SpecificRecord 但返回 GenericRecord

java - .jar 文件未安装在三星手机上,但安装在诺基亚上

java - 反转输入字符串,o/p 中的单词需要根据输入中每个关键字的长度用空格分隔

string - Matlab 字符串元胞数组 : finding repeated strings and manipulating corresponding data

string - 为什么没有在字符串类型上定义字符串函数?

java - 我想了解子字符串调用在这段代码中是如何工作的?