StringTokenizer,只取 4 个中的最后 3 个元素
StringTokennizer, take only the last 3 elements out of 4
我需要一些帮助来解决我 运行 遇到的这个问题。已读取带有缓冲区 reader 的 txt 文件并尝试使用 StringTokenizer。
我的字符串是这样的,先是一些文本,然后是一些数字。我只需要数字,想跳过 "Text".
Test 2 5 1
我的代码:
// Check if the graph contains an cycle
StringTokenizer st1 = new StringTokenizer(br.readLine());
Graph.checkForCycle(null, Integer.parseInt(st1.()), Integer.parseInt(st1.nextToken()), Integer.parseInt(st1.nextToken()));
如您所见,这里有 4 个集合,我希望在调用方法 Graph.checkForCycle()
时将最后 3 个与参数一起发送
希望有人能提供帮助。
你需要扔掉第一个:
StringTokenizer st1 = new StringTokenizer(br.readLine());
st1.nextToken(); // "Text" - do nothing with it
int i1 = Integer.parseInt(st1.nextToken()); // 2
// ...
Graph.checkForCycle(null, i1, i2, i3);
或者,您可以使用负责转换的扫描仪:
Scanner sc = new Scanner(br.readLine());
sc.next(); // "Text"
int i1 = sc.nextInt();
// ...
从 java 1.5 开始,sun(现在是 oracle)不鼓励使用 StringTokenizer。
所以在 StringTokenizer 的 javadoc 中,它说:
StringTokenizer is a legacy class that is retained for compatibility
reasons although its use is discouraged in new code. It is recommended
that anyone seeking this functionality use the split method of String
or the java.util.regex package instead.
然而,没有提到您也可以使用扫描仪class。
字符串拆分方法的示例:
String[] args = br.readLine().split("\s"); // Split on whitespaces
Graph.checkForCycle(null, args[1], args[2], args[3]);
java.util.Scanner class 示例:
Scanner scanner = new Scanner(br.readLine());
scanner.next(); //skip the first
Graph.checkForCycle(null, scanner.next(), scanner.next(), scanner.next());
这些只是简单的示例,请勿按原样使用。即:您需要使用 "hasNext" 方法,以防文本行中的字数发生变化。
我需要一些帮助来解决我 运行 遇到的这个问题。已读取带有缓冲区 reader 的 txt 文件并尝试使用 StringTokenizer。 我的字符串是这样的,先是一些文本,然后是一些数字。我只需要数字,想跳过 "Text".
Test 2 5 1
我的代码:
// Check if the graph contains an cycle
StringTokenizer st1 = new StringTokenizer(br.readLine());
Graph.checkForCycle(null, Integer.parseInt(st1.()), Integer.parseInt(st1.nextToken()), Integer.parseInt(st1.nextToken()));
如您所见,这里有 4 个集合,我希望在调用方法 Graph.checkForCycle()
时将最后 3 个与参数一起发送希望有人能提供帮助。
你需要扔掉第一个:
StringTokenizer st1 = new StringTokenizer(br.readLine());
st1.nextToken(); // "Text" - do nothing with it
int i1 = Integer.parseInt(st1.nextToken()); // 2
// ...
Graph.checkForCycle(null, i1, i2, i3);
或者,您可以使用负责转换的扫描仪:
Scanner sc = new Scanner(br.readLine());
sc.next(); // "Text"
int i1 = sc.nextInt();
// ...
从 java 1.5 开始,sun(现在是 oracle)不鼓励使用 StringTokenizer。
所以在 StringTokenizer 的 javadoc 中,它说:
StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.
然而,没有提到您也可以使用扫描仪class。
字符串拆分方法的示例:
String[] args = br.readLine().split("\s"); // Split on whitespaces
Graph.checkForCycle(null, args[1], args[2], args[3]);
java.util.Scanner class 示例:
Scanner scanner = new Scanner(br.readLine());
scanner.next(); //skip the first
Graph.checkForCycle(null, scanner.next(), scanner.next(), scanner.next());
这些只是简单的示例,请勿按原样使用。即:您需要使用 "hasNext" 方法,以防文本行中的字数发生变化。