| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 898 人关注过本帖
标题:字符串数组源程序代码问题
只看楼主 加入收藏
bryant
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-1-19
收藏
 问题点数:0 回复次数:10 
字符串数组源程序代码问题

(1)public class q{
public static void main(String[] args){
String a[]=new String[The first snow came,how beautiful it was];
count=0;
and=0;
for(int i=1;i<a.length;i++){
if(a.charAt(i)=='t')
count+=1;
else if (a.charAt(i)=='T')
and+=1;
}
System.out.println("t出现的次数:"+count);
System.out.println("T出现的次数:"+and);
}
}

这个程序是求出字符串T出现的次数.. 为什么我使用是字符串数组有问题???
(2)public class zxc{
public static void main(String[] args){
int m[]=new int[10];
m[0]=m[1]=1;
m[2]=m[0]+m[1];
System.out.print(m[0]+" "+m[1]+" "+m[2]+" ");
for (int i=3;i<=10;i++){
m[i]=m[i-1]+m[i-2];
System.out.print(m[i]+" ");
}
}
}
这个程序虽然能显示出结果..但是后面有arrayindexoutofboundsexception异常..显示数组下标超出了10.为什么??
(3)还有一个是三目运算的小问题...为什么我用它来运算就会显示出问题呢?
  比如下面一个小程序public class asd{
public static void main(String[] args){
double a=1;
double b=2;
a>b?1:2;
System.out.println("a和b之间的最大数是:"+max(a,b));
}
}
它会提示a>b之间的?出现了问题.....
   请各位高手帮我看看....告诉我错误的原因...谢谢啦!!!!!!!!

搜索更多相关主题的帖子: 字符 代码 
2006-03-31 16:04
寂寞天涯人
Rank: 1
等 级:新手上路
帖 子:172
专家分:0
注 册:2006-3-18
收藏
得分:0 

字符串数组源程序代码问题
public class q{
public static void main(String[] args){
String a=new String("The first snow came,how beautiful it was");//这样可以的

//String a[]=new String[The first snow came,how beautiful it was];

int count=0;
int and=0;
for(int i=1;i<a.length();i++){
if(a.charAt(i)=='t')
count+=1;
else if (a.charAt(i)=='T')
and+=1;
}
System.out.println("t出现的次数:"+count);
System.out.println("T出现的次数:"+and);
}
}


书籍,电影,音乐的互动交流平台http://www./
2006-03-31 16:32
寂寞天涯人
Rank: 1
等 级:新手上路
帖 子:172
专家分:0
注 册:2006-3-18
收藏
得分:0 
(2)public class zxc{
public static void main(String[] args){
int m[]=new int[10];
m[0]=m[1]=1;
m[2]=m[0]+m[1];
System.out.print(m[0]+" "+m[1]+" "+m[2]+" ");
for (int i=3;i<=10;i++){ //这里的i<=10错了.因为数组的下标是从0-9的.所以应该是i<10
m[i]=m[i-1]+m[i-2];
System.out.print(m[i]+" ");
}
}
}

书籍,电影,音乐的互动交流平台http://www./
2006-03-31 16:37
johnson1982
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-3-11
收藏
得分:0 

原代码:
public class q{
public static void main(String[] args){
String a[]=new String[The first snow came,how beautiful it was];
count=0;
and=0;
for(int i=1;i<a.length;i++){
if(a.charAt(i)=='t')
count+=1;
else if (a.charAt(i)=='T')
and+=1;
}
System.out.println("t出现的次数:"+count);
System.out.println("T出现的次数:"+and);
}
}

改过后的代码:
public class q{
public static void main(String[] args){
String s="The first snow came,how beautiful it was";
char a[]=s.toCharArray();
int count=0;
int and=0;
for(int i=1;i<a.length;i++){
if(s.charAt(i)=='t')
count+=1;
else if (s.charAt(i)=='T')
and+=1;
}
System.out.println("t出现的次数:"+count);
System.out.println("T出现的次数:"+and);
}
}


2006-03-31 16:39
johnson1982
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-3-11
收藏
得分:0 
补充:上述程序是在你初始化是有问题!!

2006-03-31 16:44
寂寞天涯人
Rank: 1
等 级:新手上路
帖 子:172
专家分:0
注 册:2006-3-18
收藏
得分:0 
public class asd{
public static void main(String[] args){
double a=1;
double b=2;
a>b?1:2; //这个语句是要返回一个值的,你这里没有返回任何值
System.out.println("a和b之间的最大数是:"+max(a,b));
}
}

书籍,电影,音乐的互动交流平台http://www./
2006-03-31 16:45
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
收藏
得分:0 
2.

public class zxc{
public static void main(String[] args){
int m[]=new int[10];
m[0]=m[1]=1;
m[2]=m[0]+m[1];
System.out.print(m[0]+\" \"+m[1]+\" \"+m[2]+\" \");
for (int i=3;i<10;i++){ //一共就10个,所以不能写<=10
m[i]=m[i-1]+m[i-2];
System.out.print(m[i]+\" \");
}
}
}


3.a>b?1:2;这个是需要有返回值的,你用int c = a>b?1:2;就没错了

向着软件工程师的目标前进!
2006-03-31 16:49
bryant
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-1-19
收藏
得分:0 
第一个程序我还发现的一个问题是'T'显示次数是错的....不知道是为什么..
   第二个程序我是搞懂了.谢谢大哥门的解释
但是还没有告诉我第3个问题是什么原因???
  谢谢\

人生就像是程序。不好好的编译,怎么能RUN QQ:289908439
2006-03-31 17:00
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
a>b?1:2;
这是一个赋值的语句,可是你的左边却没有任何东西,所以会错啦
你可以改成int c=a>b?1:2;
就可以了
System.out.println("a和b之间的最大数是:"+max(a,b));
还有,你这个max(a,b)没有看到你这个方法的方法体啊

可惜不是你,陪我到最后
2006-03-31 18:54
daydayf
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-3-27
收藏
得分:0 
(1)public class q{
public static void main(String[] args){
String a[]=new String{The first snow came,how beautiful it was}; //用{ }初始化
count=0;
and=0;
for(int i=0;i<a.length;i++){ //初始化i=0
for(int j=0;i<a[i].length;i++){ //你实际上要比较的是数组里的每一个字符串元素
if(a[i].charAt(i)=='t') //a[i].charAt(i)才是你需要比较的
count+=1;
else if (a[i].charAt(i)=='T')
and+=1;
}}
System.out.println("t出现的次数:"+count);
System.out.println("T出现的次数:"+and);
}
}



(2)public class zxc{
public static void main(String[] args){
int m[]=new int[10];
m[0]=m[1]=1;
m[2]=m[0]+m[1];
System.out.print(m[0]+" "+m[1]+" "+m[2]+" ");
for (int i=3;i<10;i++){ //数组下标溢出
m[i]=m[i-1]+m[i-2];
System.out.print(m[i]+" ");
}
}
}




(3)你的程序调用一个max方法而并没有见你定义
public class asd{
public static double max(double i,double j) // 你调用的max方法是静态的
{return i>j?i:j;} //返回值
public static void main(String[] args){
double a=1;
double b=2;
System.out.println("a和b之间的最大数是:"+max(a,b));
}
}




2006-04-01 19:14
快速回复:字符串数组源程序代码问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.085631 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved