如何将文本和数组中的值转换为String?

时间:2014-07-18 20:59:31

标签: java

基本上程序非常简单:

它需要一个名单列表,并使每个玩家对每个玩家说一次但只有一次...

所以ceri会连续玩5场比赛,但我想要发生的事情就是它是随机的......

public class hatpicking {


    public static void main(String[] args) {
    String[] Names = { "Ceri", "Matthew", "Harry", "Lewis", "Kwok", "James"};


    List<String> Matches = new ArrayList<String>();

    for(int i = 0; i < Names.length; i++){
        for(int j = i + 1; j <Names.length; j++){
            if(Names[i].equals(Names[j])){
                continue;
            }else{

                Matches.add(Names[i] + " v" Names[j]);
                    System.out.println(Names[i] + " v " + Names[j]);
                }
            }   
        }       
    }       
}

我确信有一种更简单的随机化方式,但我只是回到编程中,所以我需要尽可能的工作......

我想分配:                     (姓名[i] +&#34; v&#34;姓名[j]); 到ArrayList - 匹配但很明显

                Matches.add(Names[i] + " v" Names[j]);

不起作用,有什么提示吗?

3 个答案:

答案 0 :(得分:2)

Matches.add(Names[i] + " v" Names[j]);

应该是

Matches.add(Names[i] + " v" + Names[j]);

答案 1 :(得分:1)

Eran的回答是正确的,并将修复你的错误。但是,在旁注中,有关Java命名约定的说法。在Java中,类名应始终以大写字母开头,因此class hatpicking应为class Hatpicking。此外,变量名称应以小写字母开头,因此NamesMatches应为namesmatches

答案 2 :(得分:0)

我的猜测是你只想将比赛随机化。因此,只需使用现有的代码,然后将输出混乱。

有关最佳洗牌结果,请参阅此链接中的改组部分。 http://bost.ocks.org/mike/algorithms/

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class RandomMatch {

  public void matchGenerator() { 
      List<String> availablePlayers = Arrays.asList("Ceri", "Matthew", "Harry", "Lewis", "Kwok", "James");
      List<String> matches = new ArrayList<String>();
      int MAX_PLAYERS = availablePlayers.size();
      for(int i=0; i<MAX_PLAYERS; i++) {
          String homePlayer = availablePlayers.get(i);
          for(int j=i+1; j<MAX_PLAYERS; j++) {
              String awayPlayer = availablePlayers.get(j);
              if(!homePlayer.equals(awayPlayer)) {
                  String match = homePlayer + " vs. " + awayPlayer;
                  matches.add(match);   
              }
          }
      }
      System.out.println("Match List\n");
      for(String match : matches) 
          System.out.println(match);
      shuffle(matches);
      System.out.println("Shuffled Match List\n");
      for(String match : matches) 
          System.out.println(match);

  }

  public void shuffle(List<String> matches) { 
      long seed = System.currentTimeMillis();
      Collections.shuffle(matches, new Random(seed));
      seed = System.currentTimeMillis();
      Collections.shuffle(matches, new Random(seed));
  }


  public static void main(String[] args) {
      RandomMatch randomMatch = new RandomMatch();
      randomMatch.matchGenerator();
  }
}