浙大-Java语言程序设计编程答案10.doc
浙大-Java语言程序设计编程答案10
实验11字符串处理
统计单词(选做)40031
输入一个正整数repeat(0repeat10),做repeat次下列运算:
输入一行字符,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个。
例:括号内是说明
输入
2(repeat=2)
Reoldbuildingroom123
Programmingisfun
输出
4
3
importjava.util.Scanner;
publicclassTest40031{
publicstaticvoidmain(String[]args){
intri,repeat,count,word,i;
Stringline;
charc;
Scannerin=newScanner(System.in);
repeat=(in.nextLine()).charAt(0)-0;
for(ri=1;ri=repeat;ri++){
line=in.nextLine();
/*---------*/
count=word=0;
for(i=0;iline.length();i++){
c=line.charAt(i);//从字符串line中取出第i个字符,放入变量c
if(c==32)word=0;//当前字符是空格,表示不是单词
elseif(word==0){//当前字符不是空格,同时word=0,表示新单词开始
word=1;
count++;
}
}
System.out.println(count);
}
}
}
输出一个整数的各位数字(选做)40032
输入一个正整数repeat(0repeat10),做repeat次下列运算:
输入一个整数,从高位开始逐位输出它的各位数字。
输出语句:System.out.print(digit+);
例:括号内是说明
输入
3(repeat=3)
123456
-600
8
输出
123456
600
8
importjava.util.Scanner;
publicclassTest40032{
publicstaticvoidmain(String[]args){
intri,repeat;
intdigit;
longn,temp,pow;
Scannerin=newScanner(System.in);
repeat=in.nextInt();
for(ri=1;ri=repeat;ri++){
n=in.nextLong();
/*---------*/
n=Math.abs(n);
Strings=String.valueOf(n);//把整数n转换成字符串
for(inti=0;is.length();i++){
digit=s.charAt(i)-0;//从高位到低位依次得到一位数字
System.out.print(digit+);//输出该位数字,再加一个空格
}
System.out.println();
}
}
}
注意:若语句digit=s.charAt(i)-0;改为digit=s.charAt(i);
则变量digit的值为该字符的unicode编码。
//解法2:
n=Math.abs(n);
char[]cs=String.valueOf(n).toCharArray();
//把整数n转换成字符串后存入字符数组cs,cs的元素就是n的每位数字
for(inti=0;ics.length;i++)
index=-1;//先假设没找到
for(j=0;jstr.length();j++)
if(str.charAt(j)==ch)index=j;
字