package zhidao;
import java.util.Scanner;
/**
* 最小公倍数=两数的乘积/最大公约(因)数
*
* @author YUGI KONAMI
*/
public class CalcNumbers
{
public static void main ( String[] args )
{
System.out.println ("输入一个整数:");
Scanner s = new Scanner (System.in);
String line = null;
while (s.hasNext ())
{
line = s.next ().trim ();
if (!line.matches ("^(\\+|\\-)?([1-9]\\d*|\\d+)$"))
{
System.err.println ("输入格式不正确 ");
}
else
{
String temp = " " + line + " ";
System.out.println ("7出现的次数有:" + ( temp.split ("7").length - 1 ));
}
}
}
}
提供一个思路:利用输入得到的数字是字符串,利用字符串遍历可以得到你要的特定字符值
例如:[C code]
char *result;
int num_count=0;
result = fgets();
while(*result){
if('7' == *result) num_count++;
result++;
}
printf("The num of 7 is: %d\n",num_count);
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("输入一个整数");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
String s = ""+i;
String s1 = s.replace("7", "");
System.out.println(s.length()-s1.length());
}
}
错了,改成7了
import java.util.Scanner;
public class test
{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);//准备输出工具
System.out.print("请输入一个数:");
int getNum=input.nextInt();
int findNum;
do
{
System.out.print("想找出什么数?(0~9):");
findNum=input.nextInt();
if(new Integer(findNum).toString().length()!=1)//如果转换为String的长度不等于1,就表示他不是个位数,也就不符合0~9的限制
{
System.out.println("不符合要求,请重新输入。");
continue;//回到回圈起点
}
else{break;}//如果符合就跳出回圈
}while(true);
String str=String.valueOf(getNum);//把getNum变成字串
char[] chArr=str.toCharArray();//再把str变成char阵列
int tsn=0;//TotalSpecfiedNum,总共的指定数字
for(int rounds=0;roundsif(chArr[rounds]==findNum){
tsn++;//每有一个就加一
}
}
System.out.println(findNum+"有"+tsn+"个");
}
}
希望能帮到你。
public class Test7 {
public static int num(int i){
String s = i+"";
String[] arr = s.split("7");
return arr.length;
}
public static void main(String[] args) {
System.out.println(num(17777547));
}
}
private int calcCount(int x)
{
int count = 0;
for(char c : String.valueOf(x).toCharArray())
if(c == '7')
++count;
return count;
}