Java 如何提取字符串
我是Java编程新手。我想写一个简单的Java网络协议。 我想将此字符串发送到远程Java主机,例如:Java 如何提取字符串,java,Java,我是Java编程新手。我想写一个简单的Java网络协议。 我想将此字符串发送到远程Java主机,例如: 230 computer delete reboot exit 我无法解决的问题是如何逐个提取字符串并将其放入数组中?对我来说最大的谜团是,如果我有不同长度的弦,我是如何做到这一点的? 谢谢你的帮助 PS:我可以直接发送整个数组而不仅仅是简单的字符串吗 PS 2:如果我有Java服务器和C客户端呢?就我们所知,只有字符串可以用来在双方之间交换数据 String input = "230 co
230 computer delete reboot exit
我无法解决的问题是如何逐个提取字符串并将其放入数组中?对我来说最大的谜团是,如果我有不同长度的弦,我是如何做到这一点的?
谢谢你的帮助
PS:我可以直接发送整个数组而不仅仅是简单的字符串吗
PS 2:如果我有Java服务器和C客户端呢?就我们所知,只有字符串可以用来在双方之间交换数据
String input = "230 computer delete reboot exit";
String s[] = input.split("\\s+");
// now s[0] = 230 s[1] = computer
阅读更多关于
这里使用的正则表达式\\s+
等于任何空格。阅读了解更多信息
阅读更多关于
这里使用的正则表达式\\s+
等于任何空格。阅读了解更多信息。您可以:
String.Split
方法拆分字符串
String text = "230 computer delete reboot exit";
String[] split = text.split("\\s");
模式
和匹配器
String text = "230 computer delete reboot exit";
Pattern p = Pattern.compile("(.*)\\s+(.*)\\s+(.*)\\s+(.*)\\s+(.*)");
Matcher m = p.matcher(text);
if (m.matches()) {
String first = m.group(1);
String second = m.group(2);
....
扫描仪
类
Scanner s = new Scanner(text);
int firstNumber = s.nextInt(); // 230
String secondText = s.next(); // computer
....
String.Split
方法拆分字符串
String text = "230 computer delete reboot exit";
String[] split = text.split("\\s");
模式
和匹配器
String text = "230 computer delete reboot exit";
Pattern p = Pattern.compile("(.*)\\s+(.*)\\s+(.*)\\s+(.*)\\s+(.*)");
Matcher m = p.matcher(text);
if (m.matches()) {
String first = m.group(1);
String second = m.group(2);
....
扫描仪
类
Scanner s = new Scanner(text);
int firstNumber = s.nextInt(); // 230
String secondText = s.next(); // computer
....
或者其他方法……:) 您可以通过和使用序列化直接发送数组 但我建议您使用自己的类来封装消息。乙二醇
class NetworkMessage {
int code;
String param1;
String param2;
..
}
因此,它更加面向对象和结构化。仅发送字符串不是一个好的设计,尤其是当协议变得越来越复杂时
关于拆分字符串,只需使用
string.split(string regex)
方法,但这不是一个好的解决方案。您可以通过和使用序列化直接发送数组
但我建议您使用自己的类来封装消息。乙二醇
class NetworkMessage {
int code;
String param1;
String param2;
..
}
因此,它更加面向对象和结构化。仅发送字符串不是一个好的设计,尤其是当协议变得越来越复杂时
关于拆分字符串,只需使用
string.split(string regex)
方法,但这不是一个好的解决方案。我不能说发送到远程Java主机,但可以使用.split()
函数将字符串转换为数组<代码>“230计算机删除重新启动退出”。拆分(\\s+”将用空格将字符串拆分为5个元素的数组。您还不知道,但这不是您最大的问题…请分享您的经验好吗?如果要发送更复杂的数组,您必须决定如何序列化数据。寻找一些替代方法。我不能说发送到远程Java主机,但可以使用.split()
函数将字符串转换为数组<代码>“230计算机删除重新启动退出”。拆分(\\s+”将用空格将字符串拆分为5个元素的数组。您还不知道,但这不是您最大的问题…请分享您的经验好吗?如果要发送更复杂的数组,您必须决定如何序列化数据。还有一个问题:如果我想连接Java服务器和C客户机,交换数据的最可选方式是什么?字符串?定义二进制或文本协议。在您的例子中,您可以从字符串开始,就像您在问题中定义的一样。还有一个问题:如果我想连接Java服务器和C客户端,最可选的数据交换方式是什么?字符串?定义二进制或文本协议。在您的情况下,您可以从字符串开始,就像您在问题中定义的那样。