help!sos sigh,我竟然看不懂楼主在说什么 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我理解是判断字符数组是不是一个单词,3、4、5是单词长度,250、500、1000是相应的难度参数现在可能需要知道字符数组是不是一个单词,都是字母,或者a.都可以可以转换为string处理吧!那样会简单点 很抱歉,刚才问题没有说清楚,这个题是我上次应聘考的,当时考砸了.写一个这样的方法,接收char[]数组,判断里面有多少个单词,并且计算出平均长度单词的定义是:以空格分割,由a-z,A-Z组成,不含数字,单词结尾可以加一个点(.)但是这个点不记入此单词的长度,如:"test."算一个单词,长度为4,"www.csdn.com" "8u8"算无效单词."This is a book."平均长度为11/4=2(整数相除)若单词平均长度小于等于3,返回2504或5--返回500,大于等于6,返回1000.需要注意的一点是:这个方法的参数不是String,而是char[],题目要求处理不能用String,也不能导入别的包,要用最基本的方法实现.希望大家讨论一下 我无聊之极,所以写了一个,虽然很笨,但也实现了。:)public class chars { char[] base; int counter=0; int length=0; int average=0; public chars(char[] source){ base=source; length=this.len(this.base); this.countWord(); } int len(char[] str){ int i=0; try{ char t; while(true){ t=str[i]; i++; } }catch(Exception e){ return i; } } public int length(){ return this.length; } boolean isAWord(char[] str){ if(str==null) return false; if(str[len(str)-1]=='.'){ char[] t=new char[len(str)-1]; for(int j=0;j<len(str)-1;j++) t[j]=str[j]; str=t; } for(int i=0;i<this.len(str);i++){ char t=str[i]; if(t<'A') return false; else if((t>'Z')&&(t<'a')) return false; else if(t>'z') return false; } return true; } void countWord(){ char[] tmp=null; int i=0; int j=0; while(i<this.length()){ if(base[i]!=' '){ if(tmp==null){ tmp=new char[1]; tmp[0]=this.base[i]; i++; j++; continue; } char[] t=new char[j+1]; for(int c=0;c<j;c++){ t[c]=tmp[c]; } tmp=t; tmp[j]=this.base[i]; j++; } if((base[i]==' ')||(i==this.length()-1)){ if(j!=0) if(this.isAWord(tmp)) this.counter++; j=0; tmp=null; } i++; } } public int getNumberOfWord(){ return this.counter; } public int getAverage(){ if(this.counter==0) return -1; return this.length/this.counter; } public int getPoint(){ int l=this.getAverage(); if((l<=3)&&(l>=0)) return 250; if((l==4)||(l==5)) return 500; if(l>=6) return 1000; return 0; } public static void main(String[] args){ char[] s=new char[]{'t','h','i','s',' ','i','1','s',' ','a',' ','t','e','s','t','.'}; chars t=new chars(s); System.out.println (t.length()); System.out.println(t.getNumberOfWord()); System.out.println (t.getAverage()); System.out.println (t.getPoint()); }} 关于编码和解码 往数据库添加记录时候 程序就提示无效游标状态 在MySQL中如何查询时间段 spring mvc中 JNI传递可变参数给C 今天结贴100分 我想用JTable中直接更改数据库信息 高手指点明招! [GUI]如何实现swing中JTree的单个节点可编辑?? 也是一个关于jTee的展开问题 判断输入的是不是字母(图形相关) applet被限制调用系统资源,那么applet打印问题该如何解决,高手进来讨论 通缉黑桃A : JBuilder 2005 slider.setMajorTickSpacing怎么用啊?
3、4、5是单词长度,250、500、1000是相应的难度参数现在可能需要知道字符数组是不是一个单词,都是字母,或者a.都可以
可以转换为string处理吧!那样会简单点
写一个这样的方法,接收char[]数组,判断里面有多少个单词,并且计算出平均长度
单词的定义是:以空格分割,由a-z,A-Z组成,不含数字,单词结尾可以加一个点(.)但是这个点不记入此单词的长度,如:"test."算一个单词,长度为4,"www.csdn.com" "8u8"算无效单词.
"This is a book."平均长度为11/4=2(整数相除)
若单词平均长度小于等于3,返回250
4或5--返回500,大于等于6,返回1000.需要注意的一点是:这个方法的参数不是String,而是char[],题目要求处理不能用String,也不能导入别的包,要用最基本的方法实现.
希望大家讨论一下
char[] base;
int counter=0;
int length=0;
int average=0;
public chars(char[] source){
base=source;
length=this.len(this.base);
this.countWord();
}
int len(char[] str){
int i=0;
try{
char t;
while(true){
t=str[i];
i++;
}
}catch(Exception e){
return i;
}
}
public int length(){
return this.length;
}
boolean isAWord(char[] str){
if(str==null) return false;
if(str[len(str)-1]=='.'){
char[] t=new char[len(str)-1];
for(int j=0;j<len(str)-1;j++)
t[j]=str[j];
str=t;
}
for(int i=0;i<this.len(str);i++){
char t=str[i];
if(t<'A') return false;
else if((t>'Z')&&(t<'a')) return false;
else if(t>'z') return false;
}
return true;
}
void countWord(){
char[] tmp=null;
int i=0;
int j=0;
while(i<this.length()){
if(base[i]!=' '){
if(tmp==null){
tmp=new char[1];
tmp[0]=this.base[i];
i++;
j++;
continue;
}
char[] t=new char[j+1];
for(int c=0;c<j;c++){
t[c]=tmp[c];
}
tmp=t;
tmp[j]=this.base[i];
j++;
}
if((base[i]==' ')||(i==this.length()-1)){
if(j!=0)
if(this.isAWord(tmp))
this.counter++;
j=0;
tmp=null;
}
i++;
}
}
public int getNumberOfWord(){
return this.counter;
}
public int getAverage(){
if(this.counter==0) return -1;
return this.length/this.counter;
}
public int getPoint(){
int l=this.getAverage();
if((l<=3)&&(l>=0)) return 250;
if((l==4)||(l==5)) return 500;
if(l>=6) return 1000;
return 0;
}
public static void main(String[] args){
char[] s=new char[]{'t','h','i','s',' ','i','1','s',' ','a',' ','t','e','s','t','.'};
chars t=new chars(s);
System.out.println (t.length());
System.out.println(t.getNumberOfWord());
System.out.println (t.getAverage());
System.out.println (t.getPoint());
}
}