所以,我有一个单独的程序,需要格式为一串数字:final static private String INITIAL =" 281043765&#34 ;; (没有空格)到目前为止,这个程序完全适用于数字的硬编码分配。我需要,而不是在代码中键入数字,让程序读取一个txt文件,并将文件中的数字分配给INITIAL变量
为此,我尝试使用StringTokenizer。我的实现输出[7,2,4,5,0,6,8,1,3]。我需要它输出数字而不用" []"或者","或每个数字之间的任何空格。使它看起来完全像INITIAL。我知道我可能需要把[]和作为分隔符,但原始的txt文件纯粹是数字,我不相信这会有所帮助。这是我的代码。 (请忽略所有评论)
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class test {
//public static String num;
static ArrayList<String> num;
//public static TextFileInput myFile;
public static StringTokenizer myTokens;
//public static String name;
//public static String[] names;
public static String line;
public static void main(String[] args) {
BufferedReader reader = null;
try {
File file = new File("test3_14.txt");
reader = new BufferedReader(new FileReader(file));
num = new ArrayList<String>();
while ((line = reader.readLine())!= null) {
myTokens = new StringTokenizer(line, " ,");
//num = new String[myTokens.countTokens()];
while (myTokens.hasMoreTokens()){
num.add(myTokens.nextToken());
}
}
System.out.println(num);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
答案 0 :(得分:0)
您当前正在打印ArrayList的默认.toString()
实现。试试这个:
for (String nbr : num) {
System.out.print(nbr)
}
答案 1 :(得分:0)
要删除括号,您必须实际调用ArrayList中的每个项目。在System.out.println下面试试这个
for(String number : num)
System.out.print(number);
System.out.println("");
您还可以提供样本输入数据吗?
答案 2 :(得分:0)
尝试用space
字符串
,
和empty
line = StringUtils.replaceAll(line, “,” , “”);
line = StringUtils.replaceAll(line, “ “, “”);
System.out.println(line);