gpt4 book ai didi

java - 在字符串中查找标记后面的括号中的元素

转载 作者:太空宇宙 更新时间:2023-11-04 07:13:38 25 4
gpt4 key购买 nike

给定文本文件的 StringBuilder,格式为 A [1, 2, 3, 4] B [5, 6, 7, 8] C [9, 10]

我需要创建一个方法,以便在给出文本文件的名称和要搜索的 token 时即“StringBuilder ex.txt”和“A”,分别,它将返回一个包含元素的列表1、2、3 和 4。

正则表达式对我来说不熟悉,所以如果可能的话我想使用扫描仪。为此,我了解到必须首先在 Stringbuilder 文件上使用 .toString。

所以到目前为止我所拥有的是

Scanner sc = new Scanner(fileContent.toString())

我理解使用 split 来去掉逗号。我不需要完整的解决方案,但是对我应该首先做什么的任何帮助(使用数组,然后查找标记索引是否明智,或者是否有我不知道的更简单的方法?)都会有所帮助。

新代码(用于字符串而不是括号中的数字):

    public List<String> getPhrases(StringBuilder fileContent, String token) {
StreamTokenizer tokenizer = new StreamTokenizer(new StringReader(fileContent.toString()));
List<String> list = new ArrayList<String>();
while (tokenizer.nextToken() != StreamTokenizer.TT_EOF) {
if (tokenizer.sval.equals(token)) {
tokenizer.nextToken(); // '['
do {
tokenizer.nextToken(); // go to the number
list.append(String.valueOf(tokenizer.nval));
} while (tokenizer.nextToken() == ',');
break;
}
}
return list;
}

我遇到了附加类型之间不兼容的错误。有人能解决这个问题吗?

最佳答案

使用 StreamTokenizer。

static List<Double> getElements(String fileContent, String token) {
StreamTokenizer tokenizer = new StreamTokenizer(new StringReader(fileContent));
List<Double> list = new ArrayList<Double>();
while (tokenizer.nextToken() != StreamTokenizer.TT_EOF) {
if (tokenizer.sval.equals(token)) {
tokenizer.nextToken(); // '['
do {
tokenizer.nextToken(); // go to the number
list.append(tokenizer.nval);
} while (tokenizer.nextToken() == ',');
break;
}
}
return list;
}

关于java - 在字符串中查找标记后面的括号中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20293951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com