java版简单题解
参数解析
http://www.nowcoder.com/questionTerminal/668603dc307e4ef4bb07bcd0615ea677
核心问题:解决遇到引号字符串时内部空格保存的问题“** *”
思路:tagLeft作为引号标记,在无引号字符串的时候,tagLeft为false,此时直接逐个保存字符即可,遇到空格时,保存为换行符。遇到引号时,tagLeft为true,此时保存步骤不忽略空格,一律全部保存直到遇到又引号”,tagLeft重新标记为false。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String str = sc.nextLine(); StringBuffer sb = new StringBuffer(); int count = 1; boolean tagLeft = false; for (int i=0; i<str.length(); i++){ if (str.charAt(i) == '"' && !tagLeft){ tagLeft = true; continue; } if (str.charAt(i) == '"' && tagLeft){ tagLeft = false; continue; } if (tagLeft){ sb.append(str.charAt(i)); continue; } else{ if (str.charAt(i)==' '){ sb.append("\n"); count++; continue; } sb.append(str.charAt(i)); } } System.out.println(count); System.out.println(sb); } } }