是否有任何StringTokenizer.nextToken将返回null的情况?我正在尝试在我的代码中调试NullPointerException,到目前为止,我发现的唯一可能性是从nextToken()返回的字符串返回null.这有可能吗?在java doc中没有找到任何内容.
谢谢
所以我试着查看一个输入,并计算符合某个标准的单词(或者更确切地说,排除我不想计算的单词).错误在以下代码中:
BufferedReader br;
BufferedWriter bw;
String line;
int identifiers = 0;
boolean count = false;
try
{
br = new BufferedReader(new FileReader("A1.input"));
line = br.readLine();
while(line != null)
{
StringTokenizer t = new StringTokenizer(line);
String word;
System.out.println(t.countTokens()); //for testing, keeps printing 6
for(int c = 0; c < t.countTokens(); c++)
{
word = t.nextToken();
count = true;
if(Character.isDigit(word.charAt(0))) //if word begins with a number
{
count = false; //do not count it
}
if(count == true)
{
for(String s : …
Run Code Online (Sandbox Code Playgroud) 我有字符串:
2 | HOME ELECTRONICS | | 0 | 0 | | | | | 0 | |
我想分隔|
上面字符串中分隔的所有标记.
我试图用StringTokenizer
它来标记它,但它不考虑空格作为标记.
此外,我尝试过split("|")
但它将上述字符串的每个字符作为返回字符串数组中的元素.
我该怎么办?
我正在使用Buffered Reader将文件的各行传递给Java StringTokenizer
.该文件的结构如下:
"2,0";"foo";"foo.doc";"12345"
"2,4";"foo";"foo.doc";"34567";"foo7";"foo7.doc";"45678";"foo6";"foo6.doc";"56789";"foo5";"foo5.doc";"67890";"foo4";"foo4.doc";"23456"
"3,0";"foo7";"foo7.doc";"34567"
"3,0";"foo6";"foo6.doc";"45678"
"3,0";"foo5";"foo5.doc";"56789"
"3,0";"foo4";"foo4.doc";"67890"
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的代码.
public class parse {
public static void main(String args[]) {
FileInputStream inputStream = new FileInputStream("whidata0.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
while((scrubbedInput=br.readLine())!=null) {
StringTokenizer strTok = new StringTokenizer(scrubbedInput, ";", false);
int tokens = strTok.countTokens();
while (strTok.hasMoreTokens()) {
tok01 = strTok.nextToken();
}
System.out.println(" scrubbed: " + scrubbedInput);
System.out.println(" tokens: " + tokens);
System.out.println(" tok01: " + tok01);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这产生了这个结果.
scrubbed: "2,0";"foo";"foo.doc";"12345"
tokens: 4
tok01: 12345 scrubbed: "2,4";"foo";"foo.doc";"34567";"foo7";"foo7.doc";"45678";"foo6";"foo6.doc";"56789";"foo5";"foo5.doc";"67890";"foo4";"foo4.doc";"23456"
tokens: …
Run Code Online (Sandbox Code Playgroud) 我有一个Elixir功能,例如:
def linear(m,c,min,max,_) when someCondition do something end
我有一个字符串列表: ["3", "4", "-2", "20", "false"]
如何将此列表转换为以下内容[3,4,-2,20,false]
:
desiredFormat |> linear()
或类似的.
使用String.to_atom(head)
将工作"false"
和使用:
String.to_integer(head)
将适用于整数的字符串,但我找不到像这样的'混合'列表的解决方案.
我希望这是有道理的.谢谢
我想把StringTokenizer
结果带到ArrayList
.我使用下面的代码,在第一个print语句中,stok.nextToken()
打印正确的值.但是,在ArrayList的第二个print语句中给出错误 java.util.NoSuchElementException
.我如何将这些结果带到ArrayList?
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Test {
public static void main(String[] args) throws java.io.IOException {
ArrayList<String> myArray = new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter : ");
String s = br.readLine();
StringTokenizer stok = new StringTokenizer(s, "><");
while (stok.hasMoreTokens())
System.out.println(stok.nextToken());
// -------until now ok
myArray.add(stok.nextToken()); //------------???????????
System.out.println(myArray);
}
}
Run Code Online (Sandbox Code Playgroud) 为什么hasMoreElements
和hasMoreTokens
返回相同的值?
我遇到了问题,我使用的文本文件超过一百万行.数据格式如下,有些行有3个数据,有些只有2个.每次文件到达只有2位的数据时,它似乎抛出一个空错误(我正在使用Try/catch来读取输入流)
如果我删除值3 tokenizer,程序将运行到最后.我是否需要输入if语句来检查第二行之后是否还有另一个令牌?如果是这样 - 如何?
while ((getLine = br.readLine()) != null) {
StringTokenizer tokenizer = new StringTokenizer(getLine);
String Value1 = tokenizer.nextToken();
String Value2 = tokenizer.nextToken();
String Value3 = tokenizer.nextToken();
//Does some more things
}
Run Code Online (Sandbox Code Playgroud)
数据
11 22 33
44 55
77 88 99
10 11
13 14
16 17 18
Run Code Online (Sandbox Code Playgroud) 我想.
从字符串标记中排除完全停止,如下例所示:
I go to school.
Run Code Online (Sandbox Code Playgroud)
想生成令牌为:
[ I] [go] [to] [school]
Run Code Online (Sandbox Code Playgroud)
我使用stringTokenizer作为:
List<String> listStr = new ArrayList<String>();
StringTokenizer strToken = new StringTokenizer(str);
int i =0;
while(strToken.hasMoreTokens()){
listStr.add(i, strToken.nextToken());
i=i+1;
}
Run Code Online (Sandbox Code Playgroud)
但最后一个标志是school.
我不想要的.我该怎么办?
我正在用StringTokenizer
字符串标记一个字符串,$$
但是如果我的字符串是这样的$1$dga74
话,那么它首先将它标记化$
.任何人都可以告诉我为什么会发生这种情况,我该怎么做才能解决这个问题.
String str="/getCPage.asp?m=total&sub=$1$dga74$$/getEpage.asp?m=tatal&sub=0";
StringTokenizer tok=new StringTokenizer(str,"$$")
String url1=tok.nextToken();
String url2=tok.nextToken();
Run Code Online (Sandbox Code Playgroud) 我刚在一个方法中找到了一段Java代码:
if (param.contains("|")) {
StringTokenizer st = new StringTokenizer(param.toLowerCase().replace(" ", ""), "|");
if (st.countTokens() > 0) {
...
}
} else {
return myString.contains(param);
}
Run Code Online (Sandbox Code Playgroud)
能否countTokens
在上述情况下永远小于1?
我正在读一个字符串,作为整行数字,用空格分隔,即ie 1 2 3 4 5
.我想将它们转换为整数数组,以便我可以操纵它们.但是这段代码不起作用.它说不兼容的类型.
String str = br.readLine();
int[] array = new int[4];
StringTokenizer tok = new StringTokenizer(str," ", true);
boolean expectDelim = false;
int i = 0;
while (tok.hasMoreTokens()) {
String token = tok.nextToken();
ar[i] = Integer.parseInt(token);
i++;
}
Run Code Online (Sandbox Code Playgroud) 我想使用StringTokenizer为每个匹配的字符串解析以下内容agent>
.我尝试使用这样的代码.我哪里错了?
StringTokenizer stringtokenizer=new StringTokenize(hari,"agent>");
while(stringtokenizer.hasMoreTokens())
{
String token = stringtokenizer.nextToken();
System.out.println("output ="+token);
}
Run Code Online (Sandbox Code Playgroud)
它只是正确地标记两次,然后它不规则地响应......我的意思是第一次
output =ACT-USER::USER_1:AU01::******;
SIMULATOR 09-11-17 09:37:01
M AU01 COMPLD
;
Run Code Online (Sandbox Code Playgroud)
第二次:
output =RTRV-HDR:::RH01;
SIMULATOR 09-11-17 09:37:01
M RH01 COMPLD
;
Run Code Online (Sandbox Code Playgroud)
第三次:
output =RTRV-EQPT::ALL:RE01;
SIMULATOR 09-11-17 09:37:02
M RE01 DENY
SROF
/*S
output =us, R
output =qu
output =s
output =d Op
output =r
output =io
output = F
output =il
output =d*/
;
ACT-USER::USER_1:AU01::******;
SIMULATOR 09-11-17 09:37:01
M AU01 COMPLD
;
agent>RTRV-HDR:::RH01;
SIMULATOR 09-11-17 09:37:01 …
Run Code Online (Sandbox Code Playgroud)