2013-06-22 158 views
-6

是否有在java字符串中插入標點符號的自定義方式?在java字符串中插入標點符號

可以說我有這個小程序:

class Punctuation Marks { 
public static void main (String[]args) { 

String Greetings="Hello how are you"; 

System.out.println("Greetings"); 
} 
} 

預期輸出:你好,你怎麼樣。

+1

這個問題太流行了。 – alfasin

+1

沒有什麼不可思議的方法可以自動爲您添加所有適當位置上的所有標點符號。 – Lion

+1

@alfasin - 你的氣味太可笑了:-) –

回答

2

如何:

String greetings = "Hello" + "," + " how are you"; 

或者這樣:

String greetings = "Hello how are you"; 
greetings = greetings.substring(0, 5) + "," + greetings.substring(5); 

或者這樣:

String greetings = "Hello how are you"; 
greetings = new StringBuilder(greetings).insert(5, ",").toString(); 

插入標點符號是微不足道的,如果你知道哪裏它應該去。但是如果你事先不知道確切的地方,那是不可能的!

+0

好的,讓我更清楚一點,我的程序中實際做的是打印部門經理的姓名。我希望能用逗號打印每個管理器名稱 –

+0

這是方法 public String getManagers(){ String managers = new String(); for(int i = 0; i

+0

對不起,關於我的代碼的格式:( –

1

插入在給定位置的標點符號很簡單,只需使用StringBuilder.insert(int index, char toInsert); Programmaticly確定其中標點符號所屬,和什麼樣的使用,是該死的幾乎是不可能的。

0

答案的要點是自動標點幾乎不可能。

爲什麼?

基本上,因爲有很多單詞序列可能以不同的方式打斷,表示不同的東西。例如。

the cow jumped over the hill I saw another cow 

可以打斷作爲

The cow jumped. Over the hill I saw another cow. 

The cow jumped over the hill. I saw another cow. 

這顯然意味着不同的事情。 (可告訴我哪個是正確的?爲什麼呢?而你仍然是正確的,如果有痣在現場?)

基本上,決定哪些可能的選擇是「正確的」一個需要深刻理解的標點符號表示 ... 在它們出現的上下文中。這很可能超越了自然語言處理技術的發展水平,當然也不是普通應用程序應該嘗試的。