2013-01-10 2 views
-1

내가 자바 스크립트에서 동일했습니다,하지만 난 자바 스크립트에 새로운 그리고 난 변환하는 방법을 모른다 ... :/주어진 목록에서 임의의 문자열을 선택하는 방법은 무엇입니까? (자바)

<script language="JavaScript"> 
<!-- 
var randomString = new Array(); 
randomString[0] = "a random string"; 
randomString[1] = "another random string"; 
randomString[2] = "another random string"; 
randomString[3] = "another random string"; 
randomString[4] = "another random string"; 
randomString[5] = "another random string"; 
randomString[6] = "another random string"; 
randomString[7] = "another random string"; 
var i = Math.floor(7*Math.random()) 

document.write(randomString[i]); 
//--> 
</script> 
+0

아마도 첫 번째 시도를 보여줄 수 있습니다. –

+3

Java와 JavaScript는 전혀 다릅니다. – Pointy

+0

Java 코드를 요청하는 경우 질문에 태그를 지정하십시오. – Bergi

답변

0

내 자바 약간 녹슨입니다, 하지만 이건 어때?

List<String> s = new List<String>(); //better than an array, because those are bounded 
s.add("this is a string"); // first string 
//repeat 

int i = new Random().nextInt(s.size()); 
//from 0 - size exclusive, and the array starts at 0, so this is good 

String result = s.get(i); 
+0

목록 인덱스 ('get'에서)는 실제로 하나의 기반으로되어 있습니까? 그 흥미 롭군요. – Bergi

+0

@Bergi "rusty"에 관한 약간의 이야기가있었습니다 ;-) – jcolebrand

4

Java에는 몇 가지 옵션이 있습니다.

String[] randomString = new String[8]; 
randomString[0] = "a random string"; 
randomString[1] = "another random string"; 
randomString[2] = "another random string"; 
randomString[3] = "another random string"; 
randomString[4] = "another random string"; 
randomString[5] = "another random string"; 
randomString[6] = "another random string"; 
randomString[7] = "another random string"; 
int i = Math.floor(randomString.length * Math.random()); 

System.out.println(randomString[i]); 

또 다른 옵션은 Java Collections Framework을 사용하고 목록 같은 것을 사용하는 것입니다 : 당신은 당신이 문자열 배열을 사용하여 여기에 사용 된 것과 같은 전략을 수행 할 수

List<String> randomStrings = new LinkedList<String>(); 
randomStrings.add("a random string"); 
randomStrings.add("another random string"); 
randomStrings.add("another random string"); 

당신은 목록이되면,

Collections.shuffle(randomStrings); 
System.out.println(randomStrings.get(0)); 

나 :

int i = Math.floor(randomStrings.size() * Math.random()); 
System.out.println(randomStrings.get(i)); 
여러 가지 일을 할 수있다

Collections.shuffle은 실제로 목록을 수정하고 주변 요소를 임의로 뒤섞기 때문에이를 염두에 두어야합니다.

+0

셔플 방식은 여러 개의 임의의 문자열을 선택하거나 임의의 순서로 문자열 목록을 원할 경우 특히 편리합니다. 다시 말하지만 목록을 수정하는 것이므로 목록이 클수록 전화가 더 비싸다는 것을 명심하십시오. –

관련 문제