我有一個非常簡單的問題,其實我有點沮喪,我解決不了這個對我自己的,但在這裏它是:追加一次一個Java字符串一個字符
strBuffer += arg.charAt(i);
隨着這一行我試圖解析一個值並將它逐個字符地添加到一個新的字符串中。我這樣做是爲了將一個單獨的長字符串分成一個較小的字符串數組。
實例,這個字符串
-time delayed -run auto -mode go_n_run
將成爲該陣列
strBuffer [0] = -time
strBuffer [1] = delayed
strBuffer [2] = -run
strBuffer [3] = auto
strBuffer [4] = -mode
strBuffer [5] = go_n_run
所以代碼與 '+ =' 不工作,沒有行被放在我的strBuffer。所以,我已經試過一些更「複雜」,我在一個論壇上發現:
strBuffer.concat(new String(new char[]{arg.charAt(i)}));
但相同的結果,沒有放在strBuffer,
所以,任何提示,將不勝感激
感謝
編輯:下面是完整的方法
String[] args = new String[2 * ARG_LIMIT];
int index = 0;
for(int i = 0; i < arg.length(); i++)
{
String strBuffer = new String();
if(arg.charAt(i) != ' ')
{
// The two methods I've tried
strBuffer.concat(new String(new char[]{arg.charAt(i)}));
strBuffer += arg.charAt(i);
}
else if(arg.charAt(i) == ' ')
{
args[index] = strBuffer;
index++;
strBuffer = "";
}
}
你看過這個類的API嗎?如果是這樣,你會看到使用的方法。那麼,爲什麼不使用for循環和'append(...)'方法呢?編輯:或者更好,使用split作爲@Perception發佈。他應該做出答案。 –
你的意思是什麼不起作用?什麼實際上存儲在'strBuffer'中? –
什麼類是'strBuffer'?此外,看起來像你可以只使用'String.split'而不是試圖重新發明輪子。 – Perception