dobrze, zrobiłem mały snipet że nie, co chcesz i jeszcze kilka rzeczy. ponieważ nie określiłeś więcej warunków, nie przeszedł przez kłopoty. Wiem, że to jest brudny sposób i prawdopodobnie możesz uzyskać lepsze wyniki z czegoś, co już zostało zrobione. ale dla zabawy programowania tutaj jest przykład:
String example = "hello\"John Smith\" Ted Barry lol\"Basi German\"hello";
int wordQuoteStartIndex=0;
int wordQuoteEndIndex=0;
int wordSpaceStartIndex = 0;
int wordSpaceEndIndex = 0;
boolean foundQuote = false;
for(int index=0;index<example.length();index++) {
if(example.charAt(index)=='\"') {
if(foundQuote==true) {
wordQuoteEndIndex=index+1;
//Print the quoted word
System.out.println(example.substring(wordQuoteStartIndex, wordQuoteEndIndex));//here you can remove quotes by changing to (wordQuoteStartIndex+1, wordQuoteEndIndex-1)
foundQuote=false;
if(index+1<example.length()) {
wordSpaceStartIndex = index+1;
}
}else {
wordSpaceEndIndex=index;
if(wordSpaceStartIndex!=wordSpaceEndIndex) {
//print the word in spaces
System.out.println(example.substring(wordSpaceStartIndex, wordSpaceEndIndex));
}
wordQuoteStartIndex=index;
foundQuote = true;
}
}
if(foundQuote==false) {
if(example.charAt(index)==' ') {
wordSpaceEndIndex = index;
if(wordSpaceStartIndex!=wordSpaceEndIndex) {
//print the word in spaces
System.out.println(example.substring(wordSpaceStartIndex, wordSpaceEndIndex));
}
wordSpaceStartIndex = index+1;
}
if(index==example.length()-1) {
if(example.charAt(index)!='\"') {
//print the word in spaces
System.out.println(example.substring(wordSpaceStartIndex, example.length()));
}
}
}
}
to sprawdza także słów, które nie zostały rozdzielone spacją przed lub po cudzysłowu, takich jak słowa „Hello” przed „John Smith” i po "Basi niemiecki".
gdy łańcuch jest zmodyfikowany "John Smith" Ted Barry
wyjście jest trzy struny, 1) "John Smith" 2) Ted 3) Barry
Ciąg w przykładzie jest cześć "John Smith" Ted Barry lol "Basi German" cześć i drukuje 1) cześć 2) "John Smith" 3) Ted 4) Barry 5) lol 6) "Basi German" 7) cześć
Nadzieja pomaga
Najprawdopodobniej musisz najpierw podzielić zacytowane załączone ciągi, a następnie podzielić pozostałą część ciągu na białe znaki. Tutaj musi być kilka pytań o to, jak zrobić pierwszy krok. Drugi krok jest banalny. – jahroy
I co próbowaliście? –
Przyzwoita biblioteka parsera CSV będzie dobrze działać. Większość pozwoli na wybór ogranicznika i będzie respektować i unikać dzielenia cytowanego tekstu. –