java的subString,可以截取指定字符到该行的末尾吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java的subString,可以截取指定字符到该行的末尾吗?相关的知识,希望对你有一定的参考价值。

例如:
Record Name.................77
Flag Field..................aa
Hardware Location Code......11
Customer Card ID Number.....33
Serial Number...............44
FRU Number..................66

我怎么截取 这一行“Flag Field..................aa”。
注意:这一行的Flag Field是固定的,但aa不是固定的。并且这一行的的下一行“Hardware Location Code......11”不是固定的。

不能满足要求的就不要回复了。急用。求大神指导。暂时没财富值,等我挣点马上追加。
可能我描述的不够详细,补充下问题。上面的几行字符串顺序是可以打乱的。"........."前面的字符都是不变的。“........”之后的某个字符串是我需要截取保留的。比如说:Flag Field后面的值为aa,我就是要aa这个值,这个值是会变化的。现在我想到的方法就是可不可以直接subString.indexof("FlagField"),subString .indexof("/n");

subString若只传入一个数字,就是代表截取这个数字所在的位置字符到该行末尾的,所以想要截取制定字符到该行末尾,就首先要找到这个字符在这个字符串中的位置,然后把位置的数字传入到subString里就可以了,类似如下

s.indexOf("a")就是找s字符串中a首次出现的位置

参考技术A 如果aa是固定的长度,可以截取固定的末两位长度
如果aa前面的...............是固定格式的,可以用
substring(String.lastIndexOf(‘.’));追问

aa和.....都不是固定的哦。只有....前面的字符是固定的。我要的就是截取...之后某个值。比如说: Flag Field后面的值为aa

追答

如果是截取.后面的字符 就用我的方法

public class A 
    public static void main(String[] args) 
     String[] s = 
     "Record Name.................177",
             "Flag Field..................aaa",
             "Hardware Location Code......1asd1",
             "Customer Card ID Number.....3311",
             "Serial Number...............44",
             "FRU Number..................66"
     ;
     for (String string : s) 
System.out.println(string.substring(string.lastIndexOf('.') + 1));

    

参考技术B     String str = "Record Name.................77 Flag Field..................aa Hardware Location Code......11 Customer Card ID Number.....33 Serial Number...............44 FRU Number..................66";
    str = str.replaceAll("\\\\.", "");
    String[] arr = str.split("Record Name|Flag Field|Hardware Location Code|Customer Card ID Number|Serial Number|FRU Number");
       for(String st : arr)
  System.out.println(st);
       

追问

你的不能满足我的要求呀。因为我的问题,只是例举了一部分字符串出来,可能还有很多行。按这些进行批分不合理。我要的是指定字符后面的值,也就是上面某行中“.....”之后的某一个值,比如说,Flag Field后面的值为aa,我要的就是aa这个值。这个值不是固定的

追答

读取每行的.之前的,提取传入我的split,然后StringBuffer拼就可以了,要不就用正则表达式。

追问

可不可以截取这行的开头,到这行的末尾?但由于末尾的值不是固定,所以末尾的字符串可不可以写成换行?如果可以该如何写?

追答

你这个也可以,但是你要换行的话要+\n就可以了。

追问

但是我这样写截取不出来。
str.subString(str.indexOf("Serial Number"), str.indexOf("\n"))啊。具体该怎么写

追答

你这个东西是不是在文件中读取出来的啊?

追问

这个是从一个设备上采集的信息,在eclipse控制台上打印输出就是这样显示的。有没有可行的解决办法

追答

当然有了,截取开始到.的内容,换行截取开始到.的内容。
用StringBuffer 有个append方法,然后每个单词弄|隔开,放入我的split分开返回数组。

追问

你实现给我看看。行的话给你加分。

追答

分有什么用?部分代码已经给你了,因为我没有你那个文件。

本回答被提问者采纳

java中如何截取字符串中的指定一部分

比如 F:\workspace\ssh_photo\WebContent\uploadFile\1444783552338pic.jpg 想截取后面的文件名。

java用substring函数截取string中一段字符串

在String中有两个substring()函数,如下:

一:String.substring(int start)

参数:

start:要截取位置的索引

返回:

从start开始到结束的字符串

例如:String str = "hello word!";         System.out.println(str.substring(1));

System.out.println(str.substring(3));

System.out.println(str.substring(6));

将得到结果为:

ello word!

lo word!

ord!

如果start大于字符串的长度将会抛出越界异常;

二:String.substring(int beginIndex, int endIndex)

参数:

beginIndex 开始位置索引

endIndex    结束位置索引

返回:

从beginIndex位置到endIndex位置内的字符串

例如:String str = "hello word!";

System.out.println(str.substring(1,4));

System.out.println(str.substring(3,5));

System.out.println(str.substring(0,4));

将得到结果为:

ell

lo 

hell

如果startIndex和endIndex其中有越界的将会抛出越界异常。

参考技术A

具体方法如下:   

String useName=

F:\\workspace\\ssh_photo\\WebContent\\uploadFile\\1444783552338pic.jpg ;

int begin=useName.indexOf(“.”);

int last=useName.length();

System.out.println(useName.substring(begin,last)); 

  方法介绍:  

public String substring(int beginIndex, int endIndex);

第一个int为开始的索引,对应String数字中的开始位置。第二个是截止的索引位置,对应String中的结束位置.

参考技术B 可以使用spilt分割;
String str = "F:\workspace\ssh_photo\WebContent\uploadFile\1444783552338pic.jpg
";
String newstr[] = str.spilt('\\',5);
System.out.println(newstr[5]);
参考技术C String name="F:\\workspace\\ssh_phot.....\1444783552338pic.jpg";
int i=name.lastIndexOf("\\");
String naem1=name.substring(i+1);本回答被提问者采纳

以上是关于java的subString,可以截取指定字符到该行的末尾吗?的主要内容,如果未能解决你的问题,请参考以下文章

java怎么截取指定字符之后的字符串

java截取指定字符串中的某段字符如何实现?

java中如何截取字符串中的指定一部分

mysql 截取指定位置后面的所有的字符

substring的用法

c++ string串截取,很简单来拿分吧!