读取用户的输入,直到输入quit时退出

今天面试时碰到了一个机试题,记录一下:

读取用户的输入,直到输入quit时退出

把String类型转换为Integer类型

当输入为1时,返回true,输入不为1时返回false
不可用一个try、catch捕获所有异常 单独处理为空时的错误

public static void main(String[] args) {
		String l_input;
		Integer a = null;
		BufferedReader bufferedReader = null;
		System.out.println("请输入字符串:");

		try {
			while (true) {
				bufferedReader = new BufferedReader(new InputStreamReader(System.in));
				l_input = bufferedReader.readLine();

				if(l_input.equals("quit")) {
					System.out.println("finish");
					break;
				}

				// 判断字符串是否可以转换为Integer类型
				try {
						a = Integer.parseInt(l_input);
					// 判断输入是否为1,若为1,输出true,否则输出false
					if (a == 1) {
						System.out.println(true);
					} else {
						System.out.println(false);
					}
				} catch (NumberFormatException e) {
					System.out.println("转换失败:");
				}

				System.out.println("您输入了:" + l_input);
			}

		} catch (IOException e) {
			e.printStackTrace();
		}

	}
String转换为Integer类型两种方式:
int a = Integer.parseInte(str);
int a = Integer.valueOf(str).intValue();
注意:String类型转换为int类型时记得捕获异常,
NumberFormatException



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个过程可以分为以下几个步骤: 1. 客户端建立连接:使用套接字函数 `socket()` 创建一个套接字对象,使用 `connect()` 函数连接到服务器端。 2. 客户端从键盘接收用户输入:使用 `fgets()` 函数从标准输入流 `stdin` 中读取用户输入的内容。 3. 客户端将用户输入发送到服务器端:使用 `send()` 函数将用户输入的内容发送到服务器端。 4. 服务器端从客户端接收用户输入:使用 `recv()` 函数从已连接的套接字中接收客户端发送的数据。 5. 服务器端从键盘接收用户输入:使用 `fgets()` 函数从标准输入流 `stdin` 中读取用户输入的内容。 6. 服务器端将用户输入发送到客户端:使用 `send()` 函数将用户输入的内容发送到客户端。 7. 循环上述过程,直到用户在某端输入quit:使用`strcmp()`函数判断用户输入是否为 "quit",如果是则跳出循环。 8. 关闭连接,退出程序:使用 `close()` 函数关闭套接字连接,结束程序。 以下是示例代码,供参考: 客户端代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #define PORT 8080 #define BUFFER_SIZE 1024 int main() { int client_socket; struct sockaddr_in server_addr; char buffer[BUFFER_SIZE]; // 创建套接字 client_socket = socket(AF_INET, SOCK_STREAM, 0); if (client_socket < 0) { perror("socket creation failed"); exit(EXIT_FAILURE); } // 初始化服务器地址 memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(PORT); server_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); // 连接服务器 if (connect(client_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) { perror("connection failed"); exit(EXIT_FAILURE); } while (1) { // 从键盘接收用户输入 printf("Enter message: "); fgets(buffer, BUFFER_SIZE, stdin); // 发送数据到服务器端 send(client_socket, buffer, strlen(buffer), 0); // 接收服务器端发送的数据 memset(buffer, 0, BUFFER_SIZE); recv(client_socket, buffer, BUFFER_SIZE, 0); printf("Server: %s", buffer); // 判断用户输入是否为 "quit" if (strcmp(buffer, "quit\n") == 0 || strcmp(buffer, "quit\r\n") == 0) { break; } } // 关闭套接字连接 close(client_socket); return 0; } ``` 服务器端代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #define PORT 8080 #define BUFFER_SIZE 1024 int main() { int server_socket, client_socket; struct sockaddr_in server_addr, client_addr; char buffer[BUFFER_SIZE]; // 创建套接字 server_socket = socket(AF_INET, SOCK_STREAM, 0); if (server_socket < 0) { perror("socket creation failed"); exit(EXIT_FAILURE); } // 初始化服务器地址 memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(PORT); server_addr.sin_addr.s_addr = INADDR_ANY; // 绑定套接字到 IP 地址和端口号 if (bind(server_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) { perror("bind failed"); exit(EXIT_FAILURE); } // 开始监听连接请求 if (listen(server_socket, 3) < 0) { perror("listen failed"); exit(EXIT_FAILURE); } // 等待客户端连接 printf("Waiting for client connection...\n"); socklen_t client_addr_len = sizeof(client_addr); client_socket = accept(server_socket, (struct sockaddr *)&client_addr, &client_addr_len); if (client_socket < 0) { perror("accept failed"); exit(EXIT_FAILURE); } while (1) { // 接收客户端发送的数据 memset(buffer, 0, BUFFER_SIZE); recv(client_socket, buffer, BUFFER_SIZE, 0); printf("Client: %s", buffer); // 从键盘接收用户输入 printf("Enter message: "); fgets(buffer, BUFFER_SIZE, stdin); // 发送数据到客户端 send(client_socket, buffer, strlen(buffer), 0); // 判断用户输入是否为 "quit" if (strcmp(buffer, "quit\n") == 0 || strcmp(buffer, "quit\r\n") == 0) { break; } } // 关闭套接字连接 close(server_socket); close(client_socket); return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值