java保留想要的字符,反转Java中的字符,同时保留一些字符 - java
我有一個字符串,想要反轉它,以便某些字符反轉,而其他字符保留在原位。我該如何實現(例如,假設所有數字都留在原處時我希望所有字母都顛倒過來)?
參考方案
您可以為其創建一個自動機:
遍歷字符串,將每個字母插入堆棧,并用原始字符串(即$)中沒有的特殊字符替換,根本不更改數字。
再次遍歷字符串,將每個$替換為堆棧的頭部。
注意:由于String是不可變的,因此您首先需要將其導出到StringBuilder或CharSequence
編輯
例如:
String inp = "a45string1test";
char[] cs = new char[inp.length()];
inp.getChars(0, inp.length(), cs, 0);
Stack stack = new Stack();
for (int i =0;i
if (Character.isDigit(cs[i])) continue;
stack.push(cs[i]);
cs[i] = '$';
}
for (int i=0;i
if (cs[i] == '$') cs[i] = stack.pop();
}
System.out.println(cs);
結果將是t45setgni1rtsa
復雜度為O(n):重復兩次字符串-因為所有堆棧操作均為O(1)。
Java:找到特定字符并獲取子字符串 - java
我有一個字符串4.9.14_05_29_16_21,我只需要獲取4.9。數字各不相同,所以我不能簡單地獲得此char數組的前三個元素。我必須找到最正確的.并將其子字符串化直到那里。我來自Python,因此我將展示Python的實現方法。def foobar(some_string): location = some_string.rfind('.&…java:繼承 - java
有哪些替代繼承的方法? java大神給出的解決方案 有效的Java:偏重于繼承而不是繼承。 (這實際上也來自“四人幫”)。他提出的理由是,如果擴展類未明確設計為繼承,則繼承會引起很多不正常的副作用。例如,對super.someMethod()的任何調用都可以引導您通過未知代碼的意外路徑。取而代之的是,持有對本來應該擴展的類的引用,然后委托給它。這是與Eric…Java:BigInteger,如何通過OutputStream編寫它 - java
我想將BigInteger寫入文件。做這個的最好方式是什么。當然,我想從輸入流中讀取(使用程序,而不是人工)。我必須使用ObjectOutputStream還是有更好的方法?目的是使用盡可能少的字節。謝謝馬丁 參考方案 Java序列化(ObjectOutputStream / ObjectInputStream)是將對象序列化為八位字節序列的一種通用方法。但…Java-如何將此字符串轉換為日期? - java
我從服務器收到此消息,我不明白T和Z的含義,2012-08-24T09:59:59Z將此字符串轉換為Date對象的正確SimpleDateFormat模式是什么? java大神給出的解決方案 這是ISO 8601標準。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…Java:從類中查找項目名稱 - java
僅通過類的實例,如何使用Java反射或類似方法查找項目名稱?如果不是,項目名稱(我真正想要的是)可以找到程序包名稱嗎? 參考方案 項目只是IDE使用的簡單組織工具,因此項目名稱不是類或JVM中包含的信息。要獲取軟件包,請使用Class#getPackage()。然后,可以調用Package#getName()將包作為您在代碼的包聲明中看到的String來獲取…
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java保留想要的字符,反转Java中的字符,同时保留一些字符 - java的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 笔记本电脑u盘怎么做系统教程 教你如何制
- 下一篇: 怎么用u盘重装系统用u盘 使用U盘重新安