Java 在数组中存储StringTokenizer类nextToken()方法的标记化输出时,输出为Null
我试图存储通过使用StringTokenizer类的nextToken()方法获得的令牌。当我打印代币时,它们打印得很好。但当我尝试将它们存储在数组中时,它们返回null。我不明白这是怎么回事。你能看看这里发生了什么事吗Java 在数组中存储StringTokenizer类nextToken()方法的标记化输出时,输出为Null,java,stringtokenizer,Java,Stringtokenizer,我试图存储通过使用StringTokenizer类的nextToken()方法获得的令牌。当我打印代币时,它们打印得很好。但当我尝试将它们存储在数组中时,它们返回null。我不明白这是怎么回事。你能看看这里发生了什么事吗 import java.util.*; class TestSt{ public static void main(String[] args){ String s = "My name is Sugandha";
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]);
}
}
}
import java.util.StringTokenizer;
公共类临时工{
公共静态void main(字符串[]args){
String s=“我的名字是Sugandha”;
int i=0;
StringTokenizer s1=新的StringTokenizer,“”;
String[]ar=新字符串[s1.countTokens()];
while(s1.hasMoreTokens()){
ar[i++]=s1.nextToken();
}
对于(int j=0;jYeah,我注意到了我的错误。非常感谢你指出它。它现在已经整理好了。@SUGANDHARUCHIR,如果它对你有帮助,你可以接受答案:)