📄 csv.html
字号:
<FONT color="green">133</FONT> keys.add(removeStringDelimiters(key));<a name="line.133"></a><FONT color="green">134</FONT> }<a name="line.134"></a><FONT color="green">135</FONT> start = i + 1;<a name="line.135"></a><FONT color="green">136</FONT> fieldIndex++;<a name="line.136"></a><FONT color="green">137</FONT> }<a name="line.137"></a><FONT color="green">138</FONT> }<a name="line.138"></a><FONT color="green">139</FONT> String key = line.substring(start, line.length());<a name="line.139"></a><FONT color="green">140</FONT> keys.add(removeStringDelimiters(key));<a name="line.140"></a><FONT color="green">141</FONT> return keys; <a name="line.141"></a><FONT color="green">142</FONT> }<a name="line.142"></a><FONT color="green">143</FONT> <a name="line.143"></a><FONT color="green">144</FONT> /**<a name="line.144"></a><FONT color="green">145</FONT> * Extracts the row key and data for a single line from the input source.<a name="line.145"></a><FONT color="green">146</FONT> * <a name="line.146"></a><FONT color="green">147</FONT> * @param line the line from the input source.<a name="line.147"></a><FONT color="green">148</FONT> * @param dataset the dataset to be populated.<a name="line.148"></a><FONT color="green">149</FONT> * @param columnKeys the column keys.<a name="line.149"></a><FONT color="green">150</FONT> */<a name="line.150"></a><FONT color="green">151</FONT> private void extractRowKeyAndData(String line,<a name="line.151"></a><FONT color="green">152</FONT> DefaultCategoryDataset dataset,<a name="line.152"></a><FONT color="green">153</FONT> List columnKeys) {<a name="line.153"></a><FONT color="green">154</FONT> Comparable rowKey = null;<a name="line.154"></a><FONT color="green">155</FONT> int fieldIndex = 0;<a name="line.155"></a><FONT color="green">156</FONT> int start = 0;<a name="line.156"></a><FONT color="green">157</FONT> for (int i = 0; i < line.length(); i++) {<a name="line.157"></a><FONT color="green">158</FONT> if (line.charAt(i) == this.fieldDelimiter) {<a name="line.158"></a><FONT color="green">159</FONT> if (fieldIndex == 0) { // first field contains the row key<a name="line.159"></a><FONT color="green">160</FONT> String key = line.substring(start, i);<a name="line.160"></a><FONT color="green">161</FONT> rowKey = removeStringDelimiters(key);<a name="line.161"></a><FONT color="green">162</FONT> }<a name="line.162"></a><FONT color="green">163</FONT> else { // remaining fields contain values<a name="line.163"></a><FONT color="green">164</FONT> Double value = Double.valueOf(<a name="line.164"></a><FONT color="green">165</FONT> removeStringDelimiters(line.substring(start, i))<a name="line.165"></a><FONT color="green">166</FONT> );<a name="line.166"></a><FONT color="green">167</FONT> dataset.addValue(<a name="line.167"></a><FONT color="green">168</FONT> value, rowKey, <a name="line.168"></a><FONT color="green">169</FONT> (Comparable) columnKeys.get(fieldIndex - 1)<a name="line.169"></a><FONT color="green">170</FONT> );<a name="line.170"></a><FONT color="green">171</FONT> }<a name="line.171"></a><FONT color="green">172</FONT> start = i + 1;<a name="line.172"></a><FONT color="green">173</FONT> fieldIndex++;<a name="line.173"></a><FONT color="green">174</FONT> }<a name="line.174"></a><FONT color="green">175</FONT> }<a name="line.175"></a><FONT color="green">176</FONT> Double value = Double.valueOf(<a name="line.176"></a><FONT color="green">177</FONT> removeStringDelimiters(line.substring(start, line.length()))<a name="line.177"></a><FONT color="green">178</FONT> );<a name="line.178"></a><FONT color="green">179</FONT> dataset.addValue(<a name="line.179"></a><FONT color="green">180</FONT> value, rowKey, (Comparable) columnKeys.get(fieldIndex - 1)<a name="line.180"></a><FONT color="green">181</FONT> ); <a name="line.181"></a><FONT color="green">182</FONT> }<a name="line.182"></a><FONT color="green">183</FONT> <a name="line.183"></a><FONT color="green">184</FONT> /**<a name="line.184"></a><FONT color="green">185</FONT> * Removes the string delimiters from a key (as well as any white space <a name="line.185"></a><FONT color="green">186</FONT> * outside the delimiters).<a name="line.186"></a><FONT color="green">187</FONT> * <a name="line.187"></a><FONT color="green">188</FONT> * @param key the key (including delimiters).<a name="line.188"></a><FONT color="green">189</FONT> * <a name="line.189"></a><FONT color="green">190</FONT> * @return The key without delimiters.<a name="line.190"></a><FONT color="green">191</FONT> */<a name="line.191"></a><FONT color="green">192</FONT> private String removeStringDelimiters(String key) {<a name="line.192"></a><FONT color="green">193</FONT> String k = key.trim();<a name="line.193"></a><FONT color="green">194</FONT> if (k.charAt(0) == this.textDelimiter) {<a name="line.194"></a><FONT color="green">195</FONT> k = k.substring(1);<a name="line.195"></a><FONT color="green">196</FONT> }<a name="line.196"></a><FONT color="green">197</FONT> if (k.charAt(k.length() - 1) == this.textDelimiter) {<a name="line.197"></a><FONT color="green">198</FONT> k = k.substring(0, k.length() - 1);<a name="line.198"></a><FONT color="green">199</FONT> }<a name="line.199"></a><FONT color="green">200</FONT> return k;<a name="line.200"></a><FONT color="green">201</FONT> }<a name="line.201"></a><FONT color="green">202</FONT> <a name="line.202"></a><FONT color="green">203</FONT> }<a name="line.203"></a></PRE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -