老师,容器要放到类里的无参构造器里去实例化,是因为它是私有的吗,之前讲容器,我看都是直接实例化的
老师,视频里的查询修改删除代码都没有判断有没有记录,我增加了一个判断,这样return之后不会运行下面的语句返回到主菜单,
// 用户查询记录业务逻辑控制 public void searchLogic() { // 先判断是否有记录 if(this.list.size() == 0){ System.out.println("没有记录,请先添加记录!"); return; } Menu menu = new Menu(); TelNoteRegex telNoteRegex = new TelNoteRegex(); while (true) { menu.searchMenu(); int item = telNoteRegex.menuItemValidate(1, 7); switch (item) { case 1: // 按姓名查询 this.searchByName(); break; case 2: // 按年龄查询 this.searchByAge(); break; case 3: // 按性别查询 this.searchBySex(); break; case 4: // 按号码查询 this.searchByTelNum(); break; case 5: // 按地址查询 this.searchByAdd(); break; case 6: // 查看全纪录 this.showAll(); break; case 7: return; // 返回上一级 } } }
// 修改记录业务逻辑控制 public void modifyLogic() { // 先判断是否有记录 listHave(); Menu menu = new Menu(); TelNoteRegex telNoteRegex = new TelNoteRegex(); while (true) { menu.modifyMenu(); int item = telNoteRegex.menuItemValidate(1, 3); switch (item) { case 1: // 查看全纪录 this.showAll(); break; case 2: // 修改指定记录 this.modifyOperation(); break; case 3: return; } } } // 判断list集合是否有记录 public void listHave(){ if(this.list.size() == 0){ System.out.println("没有记录,请先添加记录!"); return; } }
老师,视频里的查询修改删除代码都没有判断有没有记录,我增加了一个判断,这样return之后不会运行下面的语句返回到主菜单,但是如果我把这个判断的代码封装到一个方法里listHave(),那么输出没有记录请添加之后,下面的代码依旧会运行,这是什么?如果我封装成方法,应该怎么做?
两次代码运行结果如下:
老师你好,视频里面copyDir方法里面,当targetDir不存在时,执行如下代码创建targetDir目录
if(!targetDir.exist()){
targetDir.mkdir(); }
然后测试了一下,当targetDir比srcDir目录层数多时,
targetDir.mkdir();这句话并没有生效, targetDir还是不存在
是否可以理解为mkdir()方法只能创建根目录下的目录?
后来更改为:
targetDir.mkdirs();
可以创建多级目录,程序也能执行当源和目的地的目录层数不一致的情况。
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; class Send1 extends Thread{ private Socket socket; private Scanner scanner; public Send1(Socket socket,Scanner scanner){ this.scanner=scanner; this.socket=socket; } public void run(){ this.sendMsg(); } private void sendMsg(){ try(PrintWriter pw=new PrintWriter(this.socket.getOutputStream()) ){ while (true){ String msg=scanner.nextLine(); pw.println(msg); pw.flush(); } }catch (Exception w){ w.printStackTrace(); } } } class Receive1 extends Thread{ private Socket socket; public Receive1(Socket socket){ this.socket=socket; } public void Run(){ this.receiveMsg(); } private void receiveMsg(){ try( BufferedReader br=new BufferedReader(new InputStreamReader(this.socket.getInputStream()))){ while (true){ String mag=br.readLine(); System.out.println("他说:"+mag); } }catch (Exception e){ e.printStackTrace(); } } } public class GoodTCP { public static void main(String[] args) { ServerSocket serverSocket=null; Socket socket=null; Scanner scanner=null; try{ scanner=new Scanner(System.in); System.out.println("输入:server,<port>或者:<ip>,<port>"); String str=scanner.nextLine(); String[] arr = str.split(","); if ("server".equals(arr[0])){ //启动服务端 System.out.println("TCP Server Listen at"+arr[1]+".........."); serverSocket=new ServerSocket(Integer.parseInt(arr[1])); socket=serverSocket.accept(); }else{ socket=new Socket(arr[0],Integer.parseInt(arr[1])); System.out.println("连接成功"); } new Send1(socket,scanner).start(); new Receive1(socket).start(); }catch (Exception e){ e.printStackTrace(); }finally { if(serverSocket!=null){ try { serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
可以正常运行,就是两个窗口,连接不到一块
一上午一个问题接着一个问题,刚开始的问题,换tomcat版本,修改文件权限,改端口,检查环境变量配置问题,基本都解决了,但这最后一个jsp的问题,查了很多都不知道原因在哪,网上出现这个问题的都是用到了spring框架一些问题,但我都没配置过这些东西,老师能否费心(因为我用两个版本都试了试,所以会出现上面截图是8.5版本,下面截图是7版本,但遇到的问题都是一样的问题,还时不时跳出404界面)
老师,我想问一下,为什么这里第三层的节点是黑色的,不是只有根节点和为空的叶子节点才能为黑色吗,为什么第三层是黑色的而第二层却是红色的。
老师我想知道这三个变量具体分别都表示了什么?
老师您好,我想请问 是否可以把Map中容器的元素理解为自带名字(键)的值?这个键的描述听起来很像下标啊
老师,foreach中不是需要传入一个consumer对象么,为什么直接传入System.out的方法也可以呢
老师这三个方法有什么区别吗?,哪个比较常用
为什么他不是-1
com.itbaizhan.SocketDemo; java.io.BufferedReader; java.io.InputStreamReader; java.io.PrintWriter; java.net.ServerSocket; java.net.Socket; java.util.Scanner; Send1 Thread{ Socket ; Scanner ; Send1(Socket socket,Scanner scanner){ .=scanner; .=socket; } run() { .SendMsg(); } SendMsg(){ (PrintWriter pw=PrintWriter(.getOutputStream());){ (){ String msg=.nextLine(); pw.println(msg); pw.flush(); } } (Exception e){ e.printStackTrace();} } } Receive1 Thread{ Socket ; Receive1(Socket socket){ .=socket; } run() { .receiveMsg(); } receiveMsg(){ (BufferedReader br=BufferedReader( InputStreamReader(.getInputStream())); ){ (){ String msg=br.readLine(); System..println(+msg); } } (Exception e){ e.printStackTrace();} } } GoodTCP { main(String[] args) { ServerSocket serverSocket=; Socket socket=; { Scanner scanner=Scanner(System.); System..println(); String str= scanner.nextLine(); String[] arr=str.split(); String[] split=str.split(); (.equals(arr[])){ System..println(+arr[]+); serverSocket =ServerSocket(Integer.(arr[])); socket = serverSocket.accept(); }{ socket =Socket(arr[],Integer.(arr[])); System..println(); } Send1(socket,scanner).start(); Receive1(socket).start(); } (Exception e){ e.printStackTrace(); }{ (serverSocket!=){ { serverSocket.close(); }(Exception e){ e.printStackTrace(); } } } } }
com.itbaizhan.SocketDemo; java.io.BufferedReader; java.io.InputStreamReader; java.io.PrintWriter; java.net.ServerSocket; java.net.Socket; Msg Thread{ Socket ; Msg(Socket socket){ .= socket; } run() { .msg(); } msg(){ (BufferedReader br = BufferedReader(InputStreamReader(..getInputStream())); PrintWriter pw = PrintWriter(..getOutputStream())){ (){ pw.println(br.readLine()+); pw.flush(); } }(Exception e){ e.printStackTrace(); System..println(..getInetAddress()+); } } } EchoServer { main(String[] args) { (ServerSocket serverSocket = ServerSocket()){ (){ Socket socket = serverSocket.accept(); Msg(socket).start(); } }(Exception e){ e.printStackTrace(); } } }
不知道为什么会报错,代码运行没问题。
public int menuItemValidate (int min, int max ){ //定义验证菜单项的正则表达式 String regex = "[1-9]{1}"; //创建键盘输入对象 Scanner scanner = new Scanner(System.in); while(true){ System.out.println("请输入正确数字,最小是:"+min+"\t"+"最大是:"+max); String input = scanner.nextLine(); if(input.matches(regex)){ int inputNum = Integer.parseInt(input); if(inputNum >= min && inputNum <= max){ return inputNum; }else{ System.out.println("您输入的菜单项不符,请重新输入!"); } }else{ System.out.println("输入数字错误,请检查!"); } } }
这个只能判断是否正确没法确定是因为长度还是内容错的呀,他只是返回boolean
if(input.matches(regex)){
所以只要这个正确那么他输入就一定是正确的,可以直接返回的里面写的都是多余的了。
老师,我的eclipse本来就有源码,但好像不对,这种情况如何导入新的源码?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637