床前明月_ ,疑是地_霜,举头望_月,低头思故_。
A.光 上 明 乡
B.上 明 乡 光
C.乡 上 明 光
D.光 乡 上 明请你编写一函数,随机扣掉每一句的一个字,然后生成3个错误选项,一个正确选项,选项的字必须是诗里所缺的字。请写出数据结构,算法。在.net区看到的
用java做下,我也考虑一下。

解决方案 »

  1.   

    package csdn.dec;import java.util.ArrayList;
    import java.util.Random;public class Poem { /**
     * @param args
     */
    String[] getStr(String s){

    String newstr = s; 
    String[] slist = new String[4];
    slist[0] = newstr;
    for(int i=1;i<4;i++){
    slist[i] = slist[i-1].substring(1)+slist[i-1].charAt(0);
    System.out.println(slist[i]);
    }

    return slist;
    }
    public char sentence(String s){
    char missword ; 
    String sent = ""; 
    Random r = new Random();
    int t = r.nextInt(s.length());
    missword = s.charAt(t);
    sent = s.replace(missword,'_');
    System.out.println(sent);
    return missword;
    }

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    char[] a = new char[20];
    Poem p = new Poem();
    a[0]=p.sentence("床前明月光");
    a[1]=p.sentence("疑是地上霜");
    a[2]=p.sentence("举头望明月");
    a[3]=p.sentence("低头思故乡");
    String ans = a[0]+" "+a[1]+" "+a[2]+" "+a[3];
    String[] anser = p.getStr(ans);char aa;
    for(int i =0 ; i <anser.length ;i++){
        aa = (char)('A'+i);
    System.out.print(aa+": "+anser[i]);

    }}
      

  2.   

    不好意思忘记注释一句代码了 
    package csdn.dec;import java.util.ArrayList;
    import java.util.Random;public class Poem { /**
     * @param args
     */
    String[] getStr(String s){

    String newstr = s; 
    String[] slist = new String[4];
    slist[0] = newstr;
    for(int i=1;i<4;i++){
    slist[i] = slist[i-1].substring(1)+slist[i-1].charAt(0);
    //System.out.println(slist[i]);
    }

    return slist;
    }
    public char sentence(String s){
    char missword ; 
    String sent = ""; 
    Random r = new Random();
    int t = r.nextInt(s.length());
    missword = s.charAt(t);
    sent = s.replace(missword,'_');
    System.out.println(sent);
    return missword;
    }

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    char[] a = new char[20];
    Poem p = new Poem();
    a[0]=p.sentence("床前明月光");
    a[1]=p.sentence("疑是地上霜");
    a[2]=p.sentence("举头望明月");
    a[3]=p.sentence("低头思故乡");
    String ans = a[0]+" "+a[1]+" "+a[2]+" "+a[3];
    String[] anser = p.getStr(ans);char aa;
    for(int i =0 ; i <anser.length ;i++){
        aa = (char)('A'+i);
    System.out.print(aa+": "+anser[i]);

    }}
      

  3.   

    楼上的看的好仔细啊我改了下 ,打乱了答案顺序
    package csdn.dec;import java.util.ArrayList;
    import java.util.Random;public class Poem { /**
     * @param args
     */
    String[] getStr(String s){
    String newstr = s; 
    String[] slist = new String[4];
    slist[0] = newstr;
    for(int i=1;i<4;i++){
    slist[i] = slist[i-1].substring(1)+slist[i-1].charAt(0);
    //System.out.println(slist[i]);
    }

    return slist;
    }
    public String sentence(String s){
    char missword ; 
    String sent = ""; 
    Random r = new Random();
    int t = r.nextInt(s.length());
    missword = s.charAt(t);
    sent = s.replace(missword,'_');
    System.out.println(sent);
    return missword+"";
    }

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    ArrayList ans = new ArrayList(20);
    Poem p = new Poem();
    String anser =  p.sentence("床前明月光")+
    p.sentence("疑是地上霜")+
    p.sentence("举头望明月")+
    p.sentence("低头思故乡");
    System.out.println(anser); String[] anserlist = p.getStr(anser);
    char aa;Random r = new Random();
    for(int i =0 ; i <anserlist.length ;i++){
    ans.add(anserlist[i]);
    }
    int i =0; 
    while(ans.size()>0){
    int t = r.nextInt(ans.size());
        aa = (char)('A'+i);
    System.out.print(aa+": "+ans.get(t));
    ans.remove(t);i++;
    }
    }
     }
      

  4.   

    3楼的  slist[i] = slist[i-1].substring(1)+slist[i-1].charAt(0);  改为
    slist[i] = slist[i - 1].substring(2) + " "+slist[i - 1].charAt(0);格式更整齐