Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java方法链接_Java_Methods_Chaining - Fatal编程技术网

Java方法链接

Java方法链接,java,methods,chaining,Java,Methods,Chaining,我有一行数据,其中包含各种非分隔字段值 X55655PlateX58745CupX52689SaucerX52459SpoonH59876KnifeX59866Fork 我试图使用substring和indexOf来提取数据,使用一系列类似于下面的语句 dataField1 = substring.inputLine((indexOf("Marker1: ")+9),(inputLine.indexOf("Marker2:")-1)); 我不断得到错误:找不到指向子字符串的符号。通常,这是在

我有一行数据,其中包含各种非分隔字段值

X55655PlateX58745CupX52689SaucerX52459SpoonH59876KnifeX59866Fork
我试图使用substring和indexOf来提取数据,使用一系列类似于下面的语句

dataField1 = substring.inputLine((indexOf("Marker1: ")+9),(inputLine.indexOf("Marker2:")-1));
我不断得到错误:找不到指向子字符串的符号。通常,这是在我没有在中调用适当的java包时发生的,但我正在使用以下内容:

import java.util.*;
import java.io.*;
import java.nio.file.*;
import java.lang.*;
而java.lang.*是字符串方法所在的地方,对吗?我还在初始化字符串datafield1=

导致indexOf接收“找不到symbnol”错误。但是,如果indexOf也是字符串的一种方法,那么需要去哪里呢

我的程序似乎使用了正确的语法substringx,y,如中所述,但是,没有适用于我的故障排除的实际示例

我已经复习过了,但这并不能让我更好地理解这些概念

为什么dioes会一直出错?我如何防止它?

应该在字符串对象上调用子字符串。否则,它将在当前类中查找名为substring的方法。

是String的方法,应该是:

inputLine.substring(...
假设inputLine是字符串实例。

试试这个

String dataField1 = inputLine.substring((inputLine.indexOf("Marker1: ")+9),
                                        (inputLine.indexOf("Marker2:")-1));

您应该解释为什么您所做的使代码有效,而不仅仅是重写代码。这有助于OP理解他/她做错了什么。@publ1c_stat1c实际上……我想我看到了……因为substring和indexOf都是String的方法,所以我需要在两种情况下从字符串调用它们:inputline.substring和inputline.indexOf。那是正确的陈述吗?是的,那是正确的。必须对对象调用方法,否则它将查找在类中定义的方法。由于substring不是类中的方法,因此无法找到symbolThanks!当我这样做的时候,indexOf就变成了未知的符号。如果indexOf也是字符串的一种方法……那需要去哪里?@dwwilson66,inputLine.indexOf,像往常一样,在第一次调用之后已经有了。您在第二次使用indexOf时正确无误,只是错过了inputLine。在第一次调用之前,Substring.inputLine.Substring的大小写应为s。i、 e.输入行。子字符串。。。通常,您不需要导入java.lang,因为它是“默认”导入的,因为它包含对象。但是,这不是实际使用Pattern/Matcher-regex组合的好例子吗?
String dataField1 = inputLine.substring((inputLine.indexOf("Marker1: ")+9),
                                        (inputLine.indexOf("Marker2:")-1));