2017-02-14 88 views
-4

所以我做了我的第一個機器人在Java和IM非常滿意我的結果 但我希望我的機器人更先進,所以我可以得到一些幫助!Java和機器人

繼承人我的代碼

 Robot a = new Robot(); 
    for (char C : "i like codding".toCharArray()){ 
     Thread.sleep(1000); 
    int n = KeyEvent.getExtendedKeyCodeForChar(C); 
    a.keyPress(n); 
    a.keyRelease(n); 

我想[我喜歡作弄]這個標誌> <之間改變什麼的。例如

 Robot a = new Robot(); 
    for (char C : char.matches("><").toCharArray()){ 
     c.replaceAll("><"," "); 
     Thread.sleep(1000); 
    int n = KeyEvent.getExtendedKeyCodeForChar(C); 
    a.keyPress(n); 
    a.keyRelease(n); 

所以你看它的錯,我不知道爲什麼,我的想法是,我的機器人會讀之間> <任何書面和重新改寫。 舉例:

! >例1 <

博特將鍵入:例1

+0

我認爲你應該從更基本的東西開始比機器人。就像理解第一個代碼中for循環的語法一樣 - 然後理解爲什麼用char.matches(「><」)替換字符串是不可能的。 – RealSkeptic

+0

我認爲它的字符串,這就是無關緊要,我知道循環...等等,我自己的問題是要理解它應該如何工作的邏輯 – Amod

+0

你可能想要提取'>'和'<'''_之前的字符串,也就是'String replaced = input.replaceAll(「。*>(。[^ <])<。*」,「$ 1」);'然後在您的循環中使用'replace'。請注意,這有點脆弱,例如如果輸入中有多個'> text <''。你需要處理(這可能意味着根本不使用正則表達式)或確保輸入始終滿足要求。 – Thomas

回答

0

你的比賽方法是錯誤的用法。 matches()是一個字符串方法,它返回一個布爾值,判斷序列是否出現在字符串中,使用正則表達式檢查模式。現在你正在使用char.matches(「> <」),但是在char中沒有這樣的方法,因爲它是一個基元,並且在對象Character中沒有這樣的方法。

你要找的是在循環之前使用匹配方法,並且看起來像是Thomas評論的正則表達式語句。更重要的是,您應該嘗試着重學習一些基礎知識,例如對象和基元之間的差異,循環結構,字符串操作和方法返回類型。這些都是簡單的,但是構成編程基礎的大型主題;像RealSkeptic說的那樣,我建議從一個更簡單的項目開始,並且爲了增加這個功能,我建議您通過Oracle Java教程,它可以幫助你加快速度:Oracle Java Tutorial Here

+0

看到,即時使用循環和調用對象錯誤,因爲我不知道這些案件的邏輯,我沒有處理這個拼貼,我的意思是這些操縱。那就是爲什麼我要求它,我不明白這背後的邏輯。所以如果你善意地告訴我如何。先生<3,這會很好 – Amod