Java StringTokenizer assistance



所以,我有一个单独的程序,需要一串格式的数字:final静态私有字符串INITIAL = "281043765";(无空格)到目前为止,该程序与数字的硬编码分配完美配合。我需要,而不是在代码中键入数字,让程序读取 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();
        }
    }
    }

}

您当前正在打印 ArrayList 的默认.toString()实现。 试试这个:

for (String nbr : num) {
   System.out.print(nbr)
}
<</div> div class="one_answers">

要去掉括号,你必须实际调用 ArrayList 中的每个项目。 试试这个在你的 System.out.println 下面

for(String number : num)
    System.out.print(number);
System.out.println("");

您能否提供示例输入数据?

尝试用empty字符串替换space,

line = StringUtils.replaceAll(line, “,” , “”);
line = StringUtils.replaceAll(line, “ “, “”);
System.out.println(line);

相关内容

  • 没有找到相关文章

最新更新