قراءة النص مع جافا الماسح المقبل (نمط نمط)
-
20-08-2019 - |
سؤال
وأنا أحاول أن استخدام فئة الماسح الضوئي لقراءة خط باستخدام المقبل (نمط نمط) طريقة للقبض على النص قبل النقطتين ثم بعد النقطتين بحيث S1 و S2 = textbeforecolon = textaftercolon.
والخط يبدو مثل هذا:
وشيء: somethingelse
المحلول
وهناك طريقتان للقيام بذلك، وهذا يتوقف على وجه التحديد ما تريد.
إذا كنت تريد تقسيم مدخلات بأكمله بنقطتين، ثم يمكنك استخدام الأسلوب useDelimiter()
، مثل الآخرين وأشار إلى:
// You could also say "scanner.useDelimiter(Pattern.compile(":"))", but
// that's the exact same thing as saying "scanner.useDelimiter(":")".
scanner.useDelimiter(":");
// Examines each token one at a time
while (scanner.hasNext())
{
String token = scanner.next();
// Do something with token here...
}
إذا كنت تريد تقسيم كل سطر بنقطتين، ثم أنه سيكون من الأسهل بكثير استخدام طريقة String
split()
ل:
while (scanner.hasNextLine())
{
String[] parts = scanner.nextLine().split(":");
// The parts array now contains ["something", "somethingelse"]
}
نصائح أخرى
وأنا لم تستخدم نمط مع الماسح الضوئي.
ولقد دائما مجرد تغيير delimeter مع سلسلة. HTTP : //java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html#useDelimiter (java.lang.String)
File file = new File("someFileWithLinesContainingYourExampleText.txt");
Scanner s = new Scanner(file);
s.useDelimiter(":");
while (!s.hasNextLine()) {
while (s.hasNext()) {
String text = s.next();
System.out.println(text);
}
s.nextLine();
}
لا تنتمي إلى StackOverflow