将 StringTokenizer class nextToken() 方法的标记化输出存储在数组中时为空输出
Null output while storing tokenized output from StringTokenizer class nextToken() method in an array
我正在尝试存储通过使用 StringTokenizer class 的 nextToken() 方法获得的标记。当我打印它们时,这些标记打印得很好。但是当我尝试将它们存储在数组中时,它们 return 为空。我不明白这里在玩什么。你能看看这里发生了什么吗?
import java.util.*;
class TestSt{
public static void main(String[] args){
String s = "My name is Sugandha";
int len = 0, i=1;
String[] ar = new String[50];
StringTokenizer s1 = new StringTokenizer(s," ");
while(s1.hasMoreTokens()){
ar[i] = s1.nextToken();
i++;
System.out.println(ar[i]);
}
}
}
使用下面的代码...
public static void main(String[] args) {
String s = "My name is Sugandha";
int len = 0, i = 1;
String[] ar = new String[50];
StringTokenizer s1 = new StringTokenizer(s, " ");
while (s1.hasMoreTokens()) {
ar[i] = s1.nextToken();
System.out.println(ar[i]);
i++; // this line is moved, print and increment
}
}
您正在尝试在递增 i 后打印该值,这意味着您正在打印下一个尚未分配的值,因此它将打印 null。
还注意到您在数组中保存的值是从 1 个索引而不是 0 个索引开始的,也许您也可以解决这个问题。
这是一个工作代码:
import java.util.StringTokenizer;
public class Temp {
public static void main(String[] args) {
String s = "My name is Sugandha";
int i = 0;
StringTokenizer s1 = new StringTokenizer(s, " ");
String[] ar = new String[s1.countTokens()];
while (s1.hasMoreTokens()) {
ar[i++] = s1.nextToken();
}
for(int j= 0 ;j<ar.length;j++){
System.out.println(ar[j]);
}
}
}
我正在尝试存储通过使用 StringTokenizer class 的 nextToken() 方法获得的标记。当我打印它们时,这些标记打印得很好。但是当我尝试将它们存储在数组中时,它们 return 为空。我不明白这里在玩什么。你能看看这里发生了什么吗?
import java.util.*;
class TestSt{
public static void main(String[] args){
String s = "My name is Sugandha";
int len = 0, i=1;
String[] ar = new String[50];
StringTokenizer s1 = new StringTokenizer(s," ");
while(s1.hasMoreTokens()){
ar[i] = s1.nextToken();
i++;
System.out.println(ar[i]);
}
}
}
使用下面的代码...
public static void main(String[] args) {
String s = "My name is Sugandha";
int len = 0, i = 1;
String[] ar = new String[50];
StringTokenizer s1 = new StringTokenizer(s, " ");
while (s1.hasMoreTokens()) {
ar[i] = s1.nextToken();
System.out.println(ar[i]);
i++; // this line is moved, print and increment
}
}
您正在尝试在递增 i 后打印该值,这意味着您正在打印下一个尚未分配的值,因此它将打印 null。
还注意到您在数组中保存的值是从 1 个索引而不是 0 个索引开始的,也许您也可以解决这个问题。
这是一个工作代码:
import java.util.StringTokenizer;
public class Temp {
public static void main(String[] args) {
String s = "My name is Sugandha";
int i = 0;
StringTokenizer s1 = new StringTokenizer(s, " ");
String[] ar = new String[s1.countTokens()];
while (s1.hasMoreTokens()) {
ar[i++] = s1.nextToken();
}
for(int j= 0 ;j<ar.length;j++){
System.out.println(ar[j]);
}
}
}