«Джон», «100,00», «200,00»
Как прочитать содержимое текстового файла, а затем вывести строку в кавычках.
Результат должен быть Ион 100,00 200,00
String CUSTOMER, CURRENT, NEW;
Scanner sc = new Scanner(str);
sc.useDelimiter(",");
while(sc.hasNext()){
CUSTOMER = sc.next();
CURRENT = sc.next();
NEW = sc.next();
System.out.println("" + CUSTOMER + " " + CURRENT +
" " + NEW);
}
sc.close();
Как отделить токены от котировок. вывод для приведенного выше кода, который я получаю, это «Джон» «100.00» «200.00»
вы пробовали что-нибудь до сих пор ?? Поделись с нами.
Это похоже на данные CSV, поэтому используйте парсер CSV !!!!




Вы можете получить требуемый результат следующим образом:
public static void main(String[] args) {
Pattern p = Pattern.compile(".*?\\\"(.*?)\\\".*?");
Matcher m = p.matcher("\"John\",\"100.00\",\"200.00\"");
while (m.find()) {
System.out.println(m.group(1));
}
}
Объяснять
.*? - anything
\\\" - quote (escaped)
(.*?) - anything (captured)
\\\" - another quote
.*? - anything
Выход
John
100.00
200.00
Я получаю из файла, так как заставить его работать для ввода из файла
Вы можете получить представление по это
https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
Сканер также может использовать другие разделители, кроме пробелов. Этот пример считывает несколько элементов из строки:
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
Таким образом, вы можете избежать первой и последней кавычек с помощью substring (1, len-1) и useDelimiter (\ ", \") с разделителем из трех символов во внутренней части.
String str = "\"John\",\"100.00\",\"200.00\"";
System.out.println(str);
String CUSTOMER, CURRENT, NEW;
Scanner sc = new Scanner(
str.substring(1,str.length()-1) // <--- here substring
);
sc.useDelimiter("\",\""); // <---- here your split: <token>","<token>
while(sc.hasNext()){
CUSTOMER = sc.next();
CURRENT = sc.next();
NEW = sc.next();
System.out.println("" + CUSTOMER + " " + CURRENT + " " + NEW);
}
sc.close();
Вот еще один способ выполнить задачу:
String line, customerName, currentVal, newVal;
try (Scanner sc = new Scanner(new File("salesrep.txt"))) {
while (sc.hasNextLine()) {
line = sc.nextLine().replace("\"", "");
//skip blank lines (if any)
if (line.equals("")) {
continue;
}
String[] lineData = line.split(",");
customerName = lineData[0];
currentVal = lineData[1]; // or: double currentVal = Double.parseDouble(lineData[1]);
newVal = lineData[2]; // or: double newVal = Double.parseDouble(lineData[2]);
System.out.println("" + customerName + " " + currentVal + " " + newVal);
}
}
catch (FileNotFoundException ex) {
ex.printStackTrace();
}
Вы забыли опубликовать код того, что уже пробовали.