2016-10-15 7 views
-3

問題は、素数系列をn個まで印刷することです。ただし、素数のいずれかに数字7が含まれている場合は、Sに置き換えられます。 たとえば、n = 7の場合、系列は 2 3 5 S 11 13 S どうすればいいですか?整数を文字列で置き換えるには

+0

なぜ7日後にSがありますか? – Pavel

+0

あなたのシリーズはどのような種類のデータですか? int、string、...の配列ですか?あなたの質問は単に文字列で整数を置き換える方法ですか?または1からnまでの素数系列を生成してから、それを置き換えるプログラムを書くことができます。 –

答えて

0

Hereは、素数を見つけて印刷する方法の例です。その後、数字7の各数字を確認して置き換えてください。

このコードでは、これは単純な文字列を含むメソッドを使用して行うことができます。

if (counter == 2) 
    { 
    if (Integer.toString(i).contains("7"){ 
     primeNumbers = primeNumbers + "S" + " "; 
    } 
    else { 
     //Appended the Prime number to the String 
     primeNumbers = primeNumbers + i + " "; 
    } 
    } 
0

これは最適な方法ではありませんが、うまくいくはずです。それが素数かどうかをテストするための機能:

private boolean isPrime(int n) 
{ 
    for(int i = 2; i < n; i++) 
    { 
     if(n % i == 0) 
      return false; 
    } 
    return true; 
} 

そして、メインループを実行するコード:あなたのシリーズは、int型の配列に含まれている場合Stringに変換し、その後、

for (int i = 2; i <= number; i++) 
     { 
      if(isPrime(i)) 
      { 
       if(Integer.valueOf(i).toString().contains("7")) { 
        System.out.print("S "); 
       } else { 
        System.out.print(i + " "); 
       } 
      } 
     } 
0

を:

strPrimes = "2, 3, 5, 7, 11, ... "; 
012:
int[] arPrimes = {2,3,5,7,11,13,17, ... }; //generate your prime numbers series 

String strPrimes = Arrays.toString(array); 

そして、あなたはこのシーケンスを持っている必要があります

"7"を含む部分文字列を"S"に置き換えるだけで済みます。

String strPrimes7S = strPrime.replaceAll(",([0-9]*7+[0-9]*)", ",S"); 
関連する問題