文件out.txt中,有如下内容:239、567、345
540/137/879
 247//839//693
658/369/147
247//十:389//个:369
4679---4679---4679
3469*0479*3689
345679 、 013568 、 52980371
。。多条数据
要求:
编写程序,从out.txt中读取内容,经过处理后,显示
效果(每行10组数据)如下:
235 236 237 245 246 247 255 256 257 335
336 337 345 346 347 355 356 357 359 369
379 459 469 479 559 569 579017 018 019 037 038 039 077 078 079 147
148 149 157 158 159 347 348 349 357 358
359 477 478 479 577 578 579233 236 238 239 268 269 289 299 334 337
346 348 349 367 378 379 468 469 489 499
678 679 789 799135 136 138 156 159 166 168 169 189 345
346 348 357 367 378 456 459 466 468 469
489 567 579 667 678 679 789233 236 238 239 268 269 289 299 334 337
346 348 349 367 378 379 468 469 489 499
678 679 789 799444 446 447 449 466 467 469 477 479 499
666 667 669 677 679 699 777 779 799 999033 034 036 038 039 046 048 049 066 068
069 089 099 334 337 339 344 346 347 348
349 367 369 378 379 389 399 446 448 449
466 467 468 469 478 479 489 499 667 669
678 679 689 699 789 799 899 999003 004 005 006 007 009 013 014 015 016
017 019 023 024 025 026 027 029 033 034
035 036 037 038 039 045 046 047 048 049
055 056 057 058 059 066 067 068 069 077
078 079 089 099 113 114 115 116 117 119
123 124 125 126 127 129 133 134 135 136
137 138 139 145 146 147 148 149 155 156
157 158 159 166 167 168 169 177 178 179
189 199 233 234 235 236 237 238 239 245
246 248 255 256 257 258 259 266 267 268
269 278 289 333 334 335 336 337 338 339
345 346 347 348 349 355 356 357 358 359
366 367 368 369 377 378 379 388 389 399
455 456 457 458 459 467 468 469 478 488
489 555 556 557 558 559 566 567 568 569
577 578 579 588 589 599 667 668 669 677
678 679 688 689 699 778 788 789 889 899
注:相当于每条数据的数字:组号后3个数字相同,把相同的条数去掉。
如:123、234、345这条数据 显示:123 124 125 133 134 135 143 144 145 223
224 225 233 234 235 243 244 245 323 324
325 333 334 335 343 344 345
经过处理后,显示:123 124 125 133 134 135 144 145 223 224
225 233 234 235 244 245 333 334 335 344
345除去了下面六组数字:
143 243 323 324 325 343 要注意每条数据分割符处理。

解决方案 »

  1.   

    文件out.txt中,有如下内容:239、567、345
    540/137/879
     247//839//693
    658/369/147
    247//十:389//个:369
    4679---4679---4679
    3469*0479*3689
    345679 、 013568 、 52980371
    。。多条数据
    要求:
    编写程序,从out.txt中读取内容,经过处理后,显示
    效果(每行10组数据)如下:
    235 236 237 245 246 247 255 256 257 335
    336 337 345 346 347 355 356 357 359 369
    379 459 469 479 559 569 579017 018 019 037 038 039 077 078 079 147
    148 149 157 158 159 347 348 349 357 358
    359 477 478 479 577 578 579233 236 238 239 268 269 289 299 334 337
    346 348 349 367 378 379 468 469 489 499
    678 679 789 799135 136 138 156 159 166 168 169 189 345
    346 348 357 367 378 456 459 466 468 469
    489 567 579 667 678 679 789233 236 238 239 268 269 289 299 334 337
    346 348 349 367 378 379 468 469 489 499
    678 679 789 799444 446 447 449 466 467 469 477 479 499
    666 667 669 677 679 699 777 779 799 999033 034 036 038 039 046 048 049 066 068
    069 089 099 334 337 339 344 346 347 348
    349 367 369 378 379 389 399 446 448 449
    466 467 468 469 478 479 489 499 667 669
    678 679 689 699 789 799 899 999003 004 005 006 007 009 013 014 015 016
    017 019 023 024 025 026 027 029 033 034
    035 036 037 038 039 045 046 047 048 049
    055 056 057 058 059 066 067 068 069 077
    078 079 089 099 113 114 115 116 117 119
    123 124 125 126 127 129 133 134 135 136
    137 138 139 145 146 147 148 149 155 156
    157 158 159 166 167 168 169 177 178 179
    189 199 233 234 235 236 237 238 239 245
    246 248 255 256 257 258 259 266 267 268
    269 278 289 333 334 335 336 337 338 339
    345 346 347 348 349 355 356 357 358 359
    366 367 368 369 377 378 379 388 389 399
    455 456 457 458 459 467 468 469 478 488
    489 555 556 557 558 559 566 567 568 569
    577 578 579 588 589 599 667 668 669 677
    678 679 688 689 699 778 788 789 889 899
    注:相当于每条数据的数字:组号后3个数字相同,把相同的条数去掉。
    如:123、234、345这条数据 显示:123 124 125 133 134 135 143 144 145 223
    224 225 233 234 235 243 244 245 323 324
    325 333 334 335 343 344 345
    经过处理后,显示:123 124 125 133 134 135 144 145 223 224
    225 233 234 235 244 245 333 334 335 344
    345除去了下面六组数字:
    143 243 323 324 325 343  要注意每条数据分割符处理。
      

  2.   

    这个实际可简化为以下几点
    1.从文件中读内容,并取出数据放入变量
    2. 从我的思路来说,因为你读入的是不同分隔的数据,所以建议用正则表达式
    3.  读入的数据可直接放入Map,因为它可过滤掉重复数据
    4.遍列Map输出,分行输出应该是简单了吧
    以上只是我的思路,希望对你有帮助
      

  3.   

    另一个思路:
    从文件读出所有行,存入表的一个列.
    将所有可能出现的非数字字符,用replace转换为逗号,再说循环更新的方法,将所有连着的逗号都变为一个逗号.
    再用分割字符串的语句将字符串分为一系列数字.
    根据你的输出要求,用所得的数字列输出.
      

  4.   

    楼主很喜欢这类题,已经送给我几百分了。
    package myio;import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Iterator;
    import java.util.Set;
    import java.util.TreeSet;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class ResolveFile {
    public static void main(String[] args) {
    resolveFile("c:/out.txt");
    }
    public static void resolveFile(String fileName) {
    BufferedReader br = null;
    try {
    br = new BufferedReader(new FileReader(fileName));
    String sourceString = null;
    String regex = "(\\d+)\\s*(?:[^\\d]+)\\s*(\\d+)\\s*(?:[^\\d]+)\\s*(\\d+)";
    Matcher matcher = null;
    Pattern pattern = Pattern.compile(regex);
    while ((sourceString = br.readLine()) != null) {
    matcher = pattern.matcher(sourceString);
    if (matcher.find()) {// 找到
    char[][] a = { matcher.group(1).toCharArray(),
    matcher.group(2).toCharArray(),
    matcher.group(3).toCharArray() };
    test(a);//按规则操作解释出来的二维字符数组
    }
    }
    } catch (IOException e) {
    } finally {
    if (br != null)
    try {
    br.close();
    } catch (IOException e) {
    throw new RuntimeException(e);
    }
    }
    }
    static void test(char[][] a) {
    Set<String> set = new TreeSet<String>();
    int counter = 0;
    permute(a, 0, a.length - 1,set);//填充set
    for (Iterator<String> iterator = set.iterator(); iterator.hasNext();) {//输出set
    System.out.print(iterator.next() + "  ");
    if (++counter % 10 == 0)
    System.out.println(); }
    }
    static void permute(char[][] a, int start, int end,Set<String> set) {
    if (start == end) {
    for (int i = 0; i < a[0].length; i++) 
    for (int j = 0; j < a[1].length; j++)
    if (a[0][i] <= a[1][j]) 
    for (int k = 0; k < a[2].length; k++) 
    if (a[1][j] <= a[2][k]) 
    set.add(a[0][i] + "" + a[1][j] + "" + a[2][k]);
    System.out.println();
    } else {
    for (int i = start; i <= end; i++) {
    swap(a, start, i);
    permute(a, start + 1, end,set);
    swap(a, start, i);
    }
    }
    }
    static void swap(char[][] a, int i, int j) {
    char[] tmp = a[i];
    a[i] = a[j];
    a[j] = tmp;
    }
    }
    /*
    235  236  237  245  246  247  255  256  257  335  
    336  337  345  346  347  355  356  357  359  369  
    379  459  469  479  559  569  579  017  018  019  037  038  039  077  078  079  147  
    148  149  157  158  159  347  348  349  357  358  
    359  477  478  479  577  578  579  233  236  238  239  268  269  289  299  334  337  
    346  348  349  367  378  379  468  469  489  499  
    678  679  789  799  135  136  138  156  159  166  168  169  189  345  
    346  348  357  367  378  456  459  466  468  469  
    489  567  579  667  678  679  789  233  236  238  239  268  269  289  299  334  337  
    346  348  349  367  378  379  468  469  489  499  
    678  679  789  799  444  446  447  449  466  467  469  477  479  499  
    666  667  669  677  679  699  777  779  799  999  
    033  034  036  038  039  046  048  049  066  068  
    069  089  099  334  337  339  344  346  347  348  
    349  367  369  378  379  389  399  446  448  449  
    466  467  468  469  478  479  489  499  667  669  
    678  679  689  699  789  799  899  999  003  004  005  006  007  009  013  014  015  016  
    017  019  023  024  025  026  027  029  033  034  
    035  036  037  038  039  045  046  047  048  049  
    055  056  057  058  059  066  067  068  069  077  
    078  079  089  099  113  114  115  116  117  119  
    123  124  125  126  127  129  133  134  135  136  
    137  138  139  145  146  147  148  149  155  156  
    157  158  159  166  167  168  169  177  178  179  
    189  199  233  234  235  236  237  238  239  245  
    246  248  255  256  257  258  259  266  267  268  
    269  278  289  333  334  335  336  337  338  339  
    345  346  347  348  349  355  356  357  358  359  
    366  367  368  369  377  378  379  388  389  399  
    455  456  457  458  459  467  468  469  478  488  
    489  555  556  557  558  559  566  567  568  569  
    577  578  579  588  589  599  667  668  669  677  
    678  679  688  689  699  778  788  789  889  899  
    */