字符串数组元素提取比较

/*
需求:求出1-1000以内的所有数字中  数字9一共出现了多少次?


         只要9出现了就算一次   999就算出现了三次
         
思路1:土办法
1,遍历到1000;
2,将遍历到的数取出百位,十位,个位,并判断是否为9,如果为9,则计数器加1;


思路2:使用字符串转换的方法
1,遍历1到1000;将得到的整数转换成字符串类型
2,遍历字符串内的字符,判断是否为9,如果为就则计数器加1;
*/
public class SumNine{
public static void main(String[] args){
//土方法
tsumnine();
System.out.println("-------------------------------------");

//使用字符串转换的方法
zfsumnine();


}

//写完土办法,感觉代码太臃肿,想到使用字符串转换的方法
public static void zfsumnine(){
//初始化计数器
int sum0 = 0;

//遍历1到1000
for(int i=1;i<=1000;i++){

//将整型转换成字符串类型
String s1 = String.valueOf(i);

//查找得到的字符串
for(int j=0;j<s1.length();j++){

//取出字符串中第j个字符
//char tmp = s1.charAt(j);

//转换成字符串类型以便调用parseInt()方法
/*String s2 = String.valueOf(tmp);
int m = Integer.parseInt(s2);

//判断是否为9
if(m==9){
sum0 = sum0 + 1;
}*/

//不需要转换成int类型
//如果直接用char基本类型调用equals()方法会编译出错
//需要先转换成Character类型,封装成对象才能调用equals()方法。
Character tmp = s1.charAt(j);
if(tmp.equals('9')){
sum0 = sum0 + 1;
}
}
}


System.out.println("使用字符串转换的方法:");
System.out.println("9出现的次数:" + sum0);
}


//刚开始使用土办法
public static void tsumnine(){
//定义计数器
int sum = 0;

//遍历1到1000
for(int i=1;i<=1000;i++){

//初始化百位,十位,个位,临时变量tmp
int b=0,s=0,g=0,tmp=0;

//如果是三位数
if(i>100){
b = i/100;//取出百位
tmp = i%100;
s = tmp/10;//取出十位
g = tmp%10;//取出个位

//判断百位是否为9
if(b%9==0){
sum = sum + 1;
}

//判断十位是否为9
if(s==0){
sum = sum;
}
else if(s%9==0){
sum = sum + 1;
}

//判断个位是否为9
if(g==0){
sum = sum;
}
else if(g%9==0){
sum = sum + 1;
}
}

//如果是两位数
else if((i>10)&&(i<100)){
s = i/10;//取出十位
g = i%10;//取出个位
//判断十位是否为9
if(s%9==0){
sum = sum + 1;
}

//判断个位是否为9
if(g==0){
sum = sum;
}
else if(g%9==0){
sum = sum + 1;
}
}

//如果是个位数
else{
//判断个位是否为9
if(i%9==0){
sum = sum + 1;
}
}
}


System.out.println("使用土办法:");
//输出9出现的次数
System.out.println("9出现的次数为" + sum + "次");
}



}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值