文件out.txt中,有如下内容:
1237/0468/1237
6475..0143..0938
567\02\567
856*856*685
0615---56---0156
78569 十769 个 56
3124+97+07
6705//0837//0367
。。
等几十条数据,要求:
1》编写程序,从out.txt中读取内容,经过处理后,显示效果(每行10组数据)如下:101 102 103 107 141 142 143 147 161 162 
163 167 181 182 183 187 201 202 203 207 
241 242 243 247 261 262 263 267 281 282 
283 287 301 302 303 307 341 342 343 347 
361 362 363 367 381 382 383 387 701 702 
703 707 741 742 743 747 761 762 763 767 
781 782 783 787 400 403 408 409 410 413 418 419 430 433 
438 439 440 443 448 449 500 503 508 509 
510 513 518 519 530 533 538 539 540 543 
548 549 600 603 608 609 610 613 618 619 
630 633 638 639 640 643 648 649 700 703 
708 709 710 713 718 719 730 733 738 739 
740 743 748 749 505 506 507 525 526 527 605 606 607 625 
626 627 705 706 707 725 726 727 555 556 558 565 566 568 585 586 588 655 
656 658 665 666 668 685 686 688 855 856 
858 865 866 868 885 886 888 050 051 055 056 060 061 065 066 150 151 
155 156 160 161 165 166 550 551 555 556 
560 561 565 566 650 651 655 656 660 661 
665 666 565 566 575 576 595 596 665 666 675 676 
695 696 765 766 775 776 795 796 865 866 
875 876 895 896 965 966 975 976 995 996 
170 177 190 197 270 277 290 297 370 377 
390 397 470 477 490 497 000 003 006 007 030 033 036 037 070 073 
076 077 080 083 086 087 500 503 506 507 
530 533 536 537 570 573 576 577 580 583 
586 587 600 603 606 607 630 633 636 637 
670 673 676 677 680 683 686 687 700 703 
706 707 730 733 736 737 770 773 776 777 
780 783 786 787 
。。
注:相当于一条信息分成3部分,每部分有若干个数字,每个数字与另两部分中的每个数字组成一个3位数。
如:12、34、56 ,处理后应显示:135 136 145 146 235 236 245 246 。

解决方案 »

  1.   

    文件out.txt中,有如下内容:
    1237/0468/1237
    6475..0143..0938
    567\02\567
    856*856*685
    0615---56---0156
    78569 十769 个 56
    3124+97+07
    6705//0837//0367
    。。
    等几十条数据,要求:
    1》编写程序,从out.txt中读取内容,经过处理后,显示效果(每行10组数据)如下:101 102 103 107 141 142 143 147 161 162  
    163 167 181 182 183 187 201 202 203 207  
    241 242 243 247 261 262 263 267 281 282  
    283 287 301 302 303 307 341 342 343 347  
    361 362 363 367 381 382 383 387 701 702  
    703 707 741 742 743 747 761 762 763 767  
    781 782 783 787  400 403 408 409 410 413 418 419 430 433  
    438 439 440 443 448 449 500 503 508 509  
    510 513 518 519 530 533 538 539 540 543  
    548 549 600 603 608 609 610 613 618 619  
    630 633 638 639 640 643 648 649 700 703  
    708 709 710 713 718 719 730 733 738 739  
    740 743 748 749  505 506 507 525 526 527 605 606 607 625  
    626 627 705 706 707 725 726 727  555 556 558 565 566 568 585 586 588 655  
    656 658 665 666 668 685 686 688 855 856  
    858 865 866 868 885 886 888  050 051 055 056 060 061 065 066 150 151  
    155 156 160 161 165 166 550 551 555 556  
    560 561 565 566 650 651 655 656 660 661  
    665 666  565 566 575 576 595 596 665 666 675 676  
    695 696 765 766 775 776 795 796 865 866  
    875 876 895 896 965 966 975 976 995 996  
    170 177 190 197 270 277 290 297 370 377  
    390 397 470 477 490 497  000 003 006 007 030 033 036 037 070 073  
    076 077 080 083 086 087 500 503 506 507  
    530 533 536 537 570 573 576 577 580 583  
    586 587 600 603 606 607 630 633 636 637  
    670 673 676 677 680 683 686 687 700 703  
    706 707 730 733 736 737 770 773 776 777  
    780 783 786 787  
    。。
    注:相当于一条信息分成3部分,每部分有若干个数字,每个数字与另两部分中的每个数字组成一个3位数。
    如:12、34、56 ,处理后应显示:135 136 145 146 235 236 245 246 。
      

  2.   

    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Arrays;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;//如果不使用集合,请仿照下面的写法
    public class ProduceRandom {
        static int counter = 10;    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*(?:[/\\\\\\*+//]|---|[\\.]{2}|十|//)\\s*(\\d+)\\s*(?:[/\\\\\\*+//]|---|[\\.]{2}|个|//)\\s*(\\d+)";
        Matcher matcher = null;
        Pattern pattern = Pattern.compile(regex);
        while ((sourceString = br.readLine()) != null) {
    matcher = pattern.matcher(sourceString);
    if (matcher.find()) {// 找到
        char[] ch1 = matcher.group(1).toCharArray();
        char[] ch2 = matcher.group(2).toCharArray();
        char[] ch3 = matcher.group(3).toCharArray();
        Arrays.sort(ch1);  Arrays.sort(ch2);   Arrays.sort(ch3);
        for (int i = 0; i < ch1.length; i++)
    for (int j = 0; j < ch2.length; j++)
        for (int k = 0; k < ch3.length; k++) {
    System.out.print("" + ch1[i] + ch2[j]
    + ch3[k] + " ");
    if (++counter % 10 == 0)
        System.out.println();
        }
    }
    System.out.println("\n\n");
    counter = 0;
        }
    } catch (IOException e) {
        throw new RuntimeException(e);
    } finally {
        if (br != null)
    try {
        br.close();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
    }
        }
    }