将整型替换为字符串



问题是打印到n的素数序列,但如果任何素数包含数字7,则将其替换为S。例如,如果n=7,级数将是2 3 5 s 11 13 s我该怎么做呢?

这不是最佳方式,但应该可以工作。测试是否质数的函数:

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

和执行主循环的代码:

  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 + " ");
                }
            }
        }

下面是如何查找和打印素数的示例。之后,你所要做的就是检查每个数字是否有数字7,并替换。

在网站上给出的代码中,这可以使用一个简单的字符串包含方法来完成。

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

如果您的系列包含在int数组中,则将其转换为String:

int[] arPrimes = {2,3,5,7,11,13,17, ... }; //generate your prime numbers series
String strPrimes = Arrays.toString(array);
那么,你应该有这样的序列:
strPrimes = "2, 3, 5, 7, 11, ... ";

你只需要将包含"7"的子字符串替换为"S";

String strPrimes7S = strPrime.replaceAll(",([0-9]*7+[0-9]*)", ",S");

最新更新