开发者社区> 问答> 正文

java中提取字符串中部分的问题。:报错

099988899,valid,2012-09-10 16:02
099988895,valid,2012-09-10 16:02
099988896,valid,2012-09-10 16:02
099988893,valid,2012-09-10 16:02

099988892,valid,2012-09-10 16:02

怎么取前面那段数字出来?

注意下,这个是从txt中读取出来的,或者有什么方法读取的时候只得到前面那段数字。

展开
收起
kun坤 2020-06-07 20:00:42 1083 0
2 条回答
写回答
取消 提交回答
  • 简单点 读取成csv,然后取第一列即可。 或者按行读,在根据逗号split取第一个

    2020-06-23 17:52:20
    赞同 展开评论 打赏
  • 弄出来了,突然想到的。。既然是一个分了段的字符串,那么我先用split("\n")获得数组,然后循环得到 如:str[i].split(",")[0],就能得到数字了。。
    ######灵感突然来了吧。。。所以多上OS没错的。。哇哈哈。######好多种方法,正则或者split######split怎分,这个是个整体啊,######

    String[] str="099988899,valid,2012-09-10 16:02".split(",");          str[0];//就是099988899


    ######回复 @Godblessmelife : 不知道怎么从文件中一行一行读出来啊。。######一行一行读不就行了?######不是一行,是从txt中读取出来,变成这么多行,是一个整体,然后我要获得前面的数字。######可以一行一行读,然后split######既然是多txt中读取,肯定要用到流了。。 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public class Test { public static void main(String[] args) throws Exception { File file = new File("D:" + File.separator + "str.txt"); BufferedReader fr = new BufferedReader(new FileReader(file)); String temp = null; while ((temp = fr.readLine()) != null) { System.out.println(temp.split(",")[0]); } } } 输出结果为: 099988899 099988895 099988896 099988893 099988892######

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    
    public class Test {
    	public static void main(String[] args) throws Exception {
    		File file = new File("D:" + File.separator + "str.txt");
    		BufferedReader fr = new BufferedReader(new FileReader(file));
    		String temp = null;
    		while ((temp = fr.readLine()) != null) {
    			System.out.println(temp.split(",")[0]);
    		}
    	}
    }

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;

    public class Test {
     public static void main(String[] args) throws Exception {
      File file = new File("D:" + File.separator + "str.txt");
      BufferedReader fr = new BufferedReader(new FileReader(file));
      String temp = null;
      while ((temp = fr.readLine()) != null) {
       System.out.println(temp.split(",")[0]);
      }
     }
    }

    ######

    引用来自“_小Z”的答案

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    
    public class Test {
    	public static void main(String[] args) throws Exception {
    		File file = new File("D:" + File.separator + "str.txt");
    		BufferedReader fr = new BufferedReader(new FileReader(file));
    		String temp = null;
    		while ((temp = fr.readLine()) != null) {
    			System.out.println(temp.split(",")[0]);
    		}
    	}
    }

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;

    public class Test {
     public static void main(String[] args) throws Exception {
      File file = new File("D:" + File.separator + "str.txt");
      BufferedReader fr = new BufferedReader(new FileReader(file));
      String temp = null;
      while ((temp = fr.readLine()) != null) {
       System.out.println(temp.split(",")[0]);
      }
     }
    }

    恩,这样实现也行。。
    ######

    引用来自“Bless_you”的答案

    弄出来了,突然想到的。。既然是一个分了段的字符串,那么我先用split("\n")获得数组,然后循环得到 如:str[i].split(",")[0],就能得到数字了。。
    split("\n")好方法,表示用过。
    ######楼上都回答你了,捡个最好的吧。。######已经解决了,非常感谢各位的解答与支持。
    2020-06-07 20:00:48
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载