为了账号安全,请及时绑定邮箱和手机立即绑定

希望能给一些比较方便的函数和清晰的代码样例 谢谢大家了!!

希望能给一些比较方便的函数和清晰的代码样例 谢谢大家了!!

繁华开满天机 2023-02-11 18:14:53
在C中可以用sscanf(s,"(%d,%d)%d",&u,&v,&z);来实现这个功能 Java中怎样实现呢?可能我说的还是不清楚我写了个C的程序 如下:#include<stdio.h>int main(){char s[1000];int u,v,z;scanf("%s",s);sscanf(s,"(%d,%d)%d",&u,&v,&z);printf("%d %d %d\n",u,v,z);return 0;}输入:(12313,999)67753输出:12313 999 67753用Java怎么实现呢 我要用Scanner读入 不想用BufferedReader 因为是个ACM的题目。。非常希望能学一个简单易用的函数 不想自己写拆分字符串的方法 谢谢大家了!!。。 希望能有清楚的Java代码 只要实现和我上边的C代码一样的功能就可以了!用Scanner控制台类读入 不要BuffereReader 不要自己写函数实现 我觉得Java的库如此强大 应该不会没有实现这个功能的函数吧。。?我在网上查了个String类中的split函数 但是这个函数只能分离诸如123:1231:123123或123.999.999这种字符串只有":","."一种风格符的字符串 如果要把123:765.999分离成 123 765 999就没辙了..希望各位高手帮帮我啊。。 就算不分离存到整型变量里也行 只要分离出来就成就是想把有规定格式的字符串中的数字分离出来。
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

据我目前所知,JAVA中应该没有类似于这样的函数,你可以自己实现一个 
split是支持正则的
123:765.999分离
str.split("[:.]");

查看完整回答
反对 回复 2023-02-15
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

java 是有scanner这个类的,用法大概如下:
Scanner scanner = new Scanner(xxx);
xxx可以是文件,可以是输入流(控制台输入就是 System.in),也可以直接是字符串。 
随后调用方法int i = scanner.nextInt();就会尝试从中读取一个整数。
当然还有很多其他的方法,可以查看API文档。
如果是按照你的例子程序的话,java实现大体如下:
public class JMain {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
while(s.hasNextInt()) {
System.out.println(s.nextInt());
}
}
}

再来说一下split方法,其实也是可以实现的,因为splti方法的参数是个正则表达式,所以只要写对正则表达式,就可以实现。
对于正则表达式我并不熟练,也就不胡说八道了。

 


查看完整回答
反对 回复 2023-02-15
?
茅侃侃

TA贡献1842条经验 获得超21个赞

看来楼主真的急用,split每次只能分1个
比如String s ="123123:35234";
String str[]=s.split(":",2);//2是去掉2次

其实可以把字符串放入字符数组,然后判断
ASCII码的'0'就是48,你要保留数字就是判断是否在'0'到'9'之间

有啊
就是麻烦一点要用到捕获异常
需要import java.io.*; 

String str=null;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in),1); 
try
{
str=br.readLine();//这句就是从键盘输入,放入str中
}
catch(IOException ex)
{
System.out.println(ex.toString());
}

 


查看完整回答
反对 回复 2023-02-15
  • 3 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信