gpt4 book ai didi

Java,检查是否为int,如果是则执行某些操作,如果不是int则忽略

转载 作者:行者123 更新时间:2023-12-01 06:23:56 25 4
gpt4 key购买 nike

如何在此方法中实现检查,以仅打印“Message”(如果它是整数)。但是,如果消息不是整数,则不要执行任何操作,只需等待下一个,我尝试解析它,但如果我打印出“消息”,并且如果“消息”不是整数,它将仅打印出空字符串。

void startListenForTCP (String ipaddress){




Thread TCPListenerThread;
TCPListenerThread = new Thread(new Runnable() {
@Override

public void run() {

Boolean run = true;
String serverMessage = null;
InetAddress serverAddr = null;


try {

Socket clientSocket = new Socket(ipaddress, 7420);

try
{
mc.pushNumbers("Connection initiated... waiting for outputs!"+"\n");
char[] buffer = new char[2048];
int charsRead = 0;
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
while ((charsRead = in.read(buffer)) != -1)
{


String message = new String(buffer, 0, charsRead);

String m = message;

//I need to print out 'm' if it an numberhere

System.out.println("Result:"+m);
mc.pushNumbers(m);


}}
catch(UnknownHostException e) {

mc.pushNumbers("Unknown host..."+"\n");
} catch(IOException e) {
mc.pushNumbers("IO Error..."+"\n");
} finally {
clientSocket.close();
}

} catch (IOException e) {
e.printStackTrace();
mc.pushNumbers("Connection refused by machine..."+"\n");
}
}

});
TCPListenerThread.start();
}

最佳答案

使用Integer.parseInt是判断字符串是否为整数的一种方法;另一种简单的方法是查看字符串是否完全由数字组成(至少有一个):

if (m.matches("\\d+")) {
mc.pushNumbers(m);
}

或者,如果您需要允许负数,

if (m.matches("-?\\d+")) {
mc.pushNumbers(m);
}

此方法的主要区别在于,它允许太大而无法放入 int 的数字字符串。这可能是一个优点或缺点,具体取决于您的需求。

关于Java,检查是否为int,如果是则执行某些操作,如果不是int则忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25872306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com