我到底错在那里呀? 各位大哥帮忙呀

shiguangxin 2004-06-12 09:23:26
小弟刚学java弟一个程序就碰到了麻烦,请个位大大帮忙呀

源程序
***************************************
import java.io.*;

public class fy
{

public static void main(String args[])
{
String mstr=new String("come baby");
String strx=readln(mstr);

}
private String readln(String msgstr)
//从控制台读取输入的字符串

{

System.out.println(msgstr);

try
{
byte bArray[]=new byte[100];
String str;
System.out.println("Enter something Using Keyborad:");
int c=System.in.read(bArray);
str = new String(bArray);}
catch(IOException ioe){System.out.println(ioe);}

return str;
}

}
*************************************************
错误信息

--------------------Configuration: JDK version <Default>--------------------
C:\Program Files\Xinox Software\JCreator Pro\MyProjects\aa\fgr\fy.java:9: Can't make static reference to method java.lang.String readln(java.lang.String) in class fy.
String strx=readln(mstr);
^
C:\Program Files\Xinox Software\JCreator Pro\MyProjects\aa\fgr\fy.java:28: Undefined variable: str
return str;
^
2 errors

Process completed.

...全文
94 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiguangxin 2004-06-12
  • 打赏
  • 举报
回复
5555 原来是这样呀

越来越没信心了

多谢老大
trust_me 2004-06-12
  • 打赏
  • 举报
回复
if(strx.equalsIgnoreCase("sgx"))
变成:
if(strx.trim().equalsIgnoreCase("sgx"))


当然,你的保证strx不是null:)
shiguangxin 2004-06-12
  • 打赏
  • 举报
回复

5555 又出错了呀

********************

import java.io.*;

public class fy
{

public static void main(String args[])
{
String mstr=new String("程序开始啦 请大家安静啦");
String strx=readln(mstr);

if(strx.equalsIgnoreCase("sgx"))
{
System.out.println("yes "+strx);
}
else
{
System.out.println("no "+strx);
}

}
private static String readln(String msgstr)
//从控制台读取输入的字符串

{

System.out.println(msgstr);
String str=null;
try
{
byte bArray[]=new byte[100];

System.out.print("请输入你的名字:");
int c=System.in.read(bArray);
str = new String(bArray);
}
catch(IOException ioe){System.out.println(ioe);}

return str;
}

}

***************************

输入 sgx
打印出来的是 no sgx

为什么呀?
梦想家起飞 2004-06-12
  • 打赏
  • 举报
回复
很正常啦,不用担心.

俺刚学java的时候犯的错误还多着呢.

不过建议你一定要练好java的基本功.
shiguangxin 2004-06-12
  • 打赏
  • 举报
回复
我真的是太菜了呀
总共没几行代码就犯了 3 处错误呀

都快没信心了呀

多谢各位大哥了
梦想家起飞 2004-06-12
  • 打赏
  • 举报
回复
三个错误:
1.你的 private String readln() 是一个非静态成员函数,未经实例化无法使用,除非你把它定义为静态方法. private static String readln()

2.你的变量 str 是在try{}块里面声明的,它的作用域就局限在try{}块里面,无法在try{}块之外使用.

3.你声明一个String变量必须给它初始化.例如 String str=null; .
duracell 2004-06-12
  • 打赏
  • 举报
回复
main调用的method一定要static的
除非实体化
public static void main(String args[])
{
fy o = new fy();
String mstr=new String("come baby");
String strx=fy.eadln(mstr);

}

第二个错误
把 String str;放在try catch 外面就可以了不过最好初始化一下如String str = null;


shiguangxin 2004-06-12
  • 打赏
  • 举报
回复
我使用的是 JCreator + JDK1.4

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧