2012-02-02 51 views
0

非常新新的Java和我在一個Java intro類,所以我很抱歉,如果這個問題是非常簡單的,但我想知道是否可以設置一個字符串等於一個方法。我想我已經知道答案是否定的,因爲NetBeans是拋出一個錯誤,但我只是不知道另一種方式來編寫這樣一個問題:設置一個字符串等於方法

「由串聯每隔非空格字符創建一個名爲passwd中形成新的字符串句子(「句」是一個字符串,她把我們創建較早的分配)從第一個開始。要做到這一點,你需要一個循環來遍歷字符串句子和檢索備用索引位置的字符。如果提取替代字符不是空格,然後將其添加到新字符串中,不要包含空格。「

在我有限的Java知識的基礎上,我所能做的就是設置一個等於「for」方法的新字符串,但顯然這是不允許的。我將如何做到這一點?

+3

你到目前爲止嘗試了什麼? – 2012-02-02 08:16:37

+0

如果你有一些代碼,粘貼它找到快速和準確的答案:) – 2012-02-02 08:17:59

+0

請閱讀標準的Java教程。你沒有從老師那裏得到任何材料嗎?如書籍推薦? – 2012-02-02 08:18:18

回答

-1
public String result() { 
    String result = ""; 
    for (char c : log.toCharArray()) { 
    if (!" ".equals(c)) { 
     result += c; 
    } 
    } 
    return result; 
} 
+0

這不需要_alternate_非空格字符,再加上它可能更好地使用StringBuilder,而不是每次都追加到String。 – 2012-02-02 14:42:58

0

您可以使用此代碼(假設字符串是你原來的字符串):

StringBuffer passwd = new StringBuffer(); 
for (int i=0; i<string.length(); i+=2) { 
    if (string.charAt(i) != ' ') 
     passwd.append(string.charAt(i)); 
} 
System.out.printf("passwd is: [%s]%n", passwd.toString()); 
+1

你爲什麼要做我+ = 2? – vulkanino 2012-02-02 08:21:04

+0

@vulkanino:請再次閱讀OP的問題。這是從'通過字符串句子並從替代索引位置檢索字符'這個問題' – anubhava 2012-02-02 08:34:54

+0

你是對的,我沒有得到「替代」的意義在第一位:) – vulkanino 2012-02-02 09:10:38

2

要做到你需要什麼,你需要將字符串初始化爲要處理的那句話,使用.charAt()方法查找字符串長度的循環,並查看字符是否爲空格。爲此,您可以使用Character.isWhiteSpace()。如果角色不是空格,則可以將其附加到StringBuilder

+0

只是fyi isSpace返回真正的標籤,行分隔符以及不知道如果OP真的想要的。此外'isSpace()'已被棄用,現在已被'isWhiteSpace()'取代。 – anubhava 2012-02-02 08:37:45

+0

@anubhava:謝謝你讓我知道。答案已經相應更新。 – npinti 2012-02-02 08:42:55

0

在分配文本有你需要做的一切。即使您不知道Java,也可以寫下非正式的algorthim:

  1. 聲明並初始化一個新的字符串,可能與源字符串的大小相同。在Java中,你可以使用一個StringBuffer來加快複製
  2. 週期爲源string.In Java的每個字符你的charAt()。
  3. 它是一個空間嗎?如果是,則繼續循環。我Java你isSpace()。
  4. 如果不是空格,則將此char附加到新字符串。在Java中,你有一個String或一個StringBuffer
0

的append方法即使有可能以某種方式設置一個字符串等於「對」的方法(實際上for是一個聲明,而不是方法),是什麼那麼字符串是否包含? 「對於」?這當然不是你想要的。

你需要一個循環都要經過串句

因此,創建一個(對)循環。

從備用的索引位置,檢索字符

參見String.charAt()

如果所提取的備選字符不是空格,然後將其添加到新的字符串。

瞭解if的工作原理。 Character.isWhitespace()方法可能會有用。