1. 代码填空
假设s是一个型如:"cat223dog456nice25ttt98"的串,其特征是数字与字符交错。我们希望知道这个串中有多少个数字段。
假设该串必以字符开始。我们给出了如下代码,请完善之:
boolean old_tag = false; // 表示开始不是数字
boolean tag = false;
int n = 0; // 数字组计数
for(int i=0; i<s.length(); i++){
char c = s.charAt(i);
tag = c>='0' &&c<='9'; // 是否为数字
if(____________) n++;
old_tag = tag;
}
//总结:审题明确、抓住关键!数字段不是数字,根据题目中的意思就是“223”是一个数字段,而不是求有多少个数字!
题目说到以字符开始所以就boolean old_tag = false;判断布尔型值得时候是“==”,而不是“=”,否则出现以下错误!
填空的内容主要是对算法的一个简单判断,从开始的数字值到不是数字值(即是字符值)之间的比较判断的一个过程!
思考:如果同时改变初始值 old_tag 和"11cat223dog456nice25ttt98"结果有时会怎么样呢???
完整代码:
public classDemo1
{
public static void main (String args[])
{
boolean old_tag=false;
boolean tag=false;
int n=0;
String s="cat223dog456nice25ttt98";
for(int i=0; i<s.length(); i ++)
{
char c=s.charAt(i);
tag=c>='0' &&c <='9';
if(tag==true && old_tag==false)
n++;
old_tag=tag;
}
System.out.println(n);
}
}