package test.reverse.com;
public class TestCF {
public String t(String se){
StringBuffer sb=new StringBuffer(se);
for(int i=0;i<sb.length()-1;i++){
for(int j=i+1;j<sb.length();j++){
if(sb.charAt(i)==sb.charAt(j)){
sb.deleteCharAt(j);
}
}
}
return sb.toString();
}
public static void main(String[] args){
TestCF tcf=new TestCF();
String sr="3434552211789";
String s=tcf.t(sr);
System.out.println(s);
}
//=================================================================
// public static void main(String[] args){
// String s="3434552211789";
// StringBuffer sb= new StringBuffer(s);
// for(int i=0;i<sb.length()-1;i++){
// for(int j=i+1;j<sb.length();j++){
// if(sb.charAt(i)==sb.charAt(j)){
// sb.deleteCharAt(j);
// }
// }
// }
// System.out.println(sb);
//
// }
}
分享到:
相关推荐
它的设计允许在已存在的`StringBuffer`对象上进行字符串操作,如插入、删除或替换字符,而不会每次都创建新的对象。由于这种可变性,`StringBuffer`在需要频繁修改字符串内容的场合中提供了更好的性能。 在创建字符...
Java中的StringBuffer类是一个可以变的字符序列,提供了许多用于修改字符串的方法,包括添加或删除字符序列。在js中没有内置的StringBuffer类,但可以通过自定义的函数或对象来模拟这种行为。 文章首先提到了创建一...
- 使用`Integer.valueOf()`缓存小整数值,避免重复创建`Integer`对象,如`Integer i = Integer.valueOf(10);` - 对于临时对象,优先考虑使用局部变量,而不是创建新的对象实例。 5. **使用集合类的高效方法** - ...
- `StringBuilder`或`StringBuffer`类在处理大量字符串操作时更高效,因为它们支持在字符串中间插入、删除或替换字符,而String对象是不可变的。 - Java 8引入了流(Stream)API,可以更简洁地处理字符串和字符的...
- 使用局部变量代替重复计算,减少计算量。 - 尽量避免使用instanceof,它会进行类型检查,影响性能。 2. **循环优化**: - 使用for-each循环代替传统的for循环,减少对索引的使用和检查。 - 在循环内部避免...
简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载!... //得到服务器目录与文件列表输入流 StringBuffer info=new StringBuffer...
16. 无效代码处理:删除或注释掉不再使用的代码。 17. 代码测试:在提交前完成测试,确保不引发其他模块错误。 18. 配置文档:遵循规范格式,增加注释,提高配置可理解性。 19. JavaScript规范:遵循JS编码规范,...
- 使用局部变量代替重复计算,减少重复的工作。 3. **数据结构和算法选择**: - 选择合适的数据结构,例如:用`ArrayList`还是`LinkedList`取决于遍历和插入删除操作的频率。 - 优化算法,如使用二分查找替换...
- 对于重复调用的方法,考虑使用本地变量存储方法的结果,避免重复计算。 5. **集合与数据结构的选择**: - 根据需求选择合适的集合类型。如,如果需要频繁查找,使用`HashSet`;如果需要保持插入顺序,使用`...
2. **理解并合理使用集合框架**:例如,ArrayList适合于随机访问,而LinkedList适合于插入和删除操作。了解这些内在特性,根据需求选择合适的数据结构,能显著提升效率。 3. **优化IO操作**:使用NIO(非阻塞IO)...
- 使用方法重用,避免重复代码,遵循DRY(Don't Repeat Yourself)原则。 - 避免过度使用递归,可能导致栈溢出,考虑使用循环代替。 4. **字符串操作优化** - 字符串是不可变的,频繁拼接会导致不必要的内存创建...
在循环中重复获取集合的大小是一个常见的性能陷阱。为了提高效率,可以在循环前将集合的大小存储在一个局部变量中。 #### 14. 条件判断与对象创建 避免在条件判断中提前创建对象。如果某个对象只在特定条件下才需要...
- 避免重复实现父类或上游代码的功能。 - 调试代码应封装在条件语句中。 - 减少不必要的`import`语句。 6. **缺陷检查**: - 程序逻辑应符合详细设计。 - 输入验证、函数返回值校验是必要的。 - 避免在抽象类...
- 提取重复代码为函数或方法,遵循DRY(Don't Repeat Yourself)原则,提高代码复用性。 - 保持方法简洁,避免过大的方法,以提高理解和维护性。 8. **性能监控**: - 使用Java性能分析工具,如VisualVM或...
- 根据实际需求选择合适的数据结构,例如,如果需要频繁插入和删除元素,`LinkedList`可能比`ArrayList`更适合;如果需要快速查找,`HashMap`或`HashSet`则更优。 通过遵循这些铁律,开发者可以逐步改善Java代码的...
例如,将26个字母重复5000次,使用String进行连接所需的时间大约是46秒,而使用StringBuffer只需约16秒,这证明了StringBuffer在性能上的优势。 此外,代码中提到的str += "here"这样的操作,实际上在底层会转化为...
- **避免使用冗余代码**:删除无用的变量、常量和方法,避免重复计算。 - **减少空对象检查**:使用`Objects.requireNonNull()`方法来简化空对象检查。 - **使用三元运算符**:在条件简单的场景下,三元运算符比...
- 继承机制支持代码的重用,减少重复代码,使得程序结构更加清晰和模块化。 3. **封装**: - 封装是将对象的状态(属性)和行为(方法)包装在一起,隐藏对象内部的具体实现细节,仅对外提供公共的接口。 - 这样...
- `StringBuilder`和`StringBuffer`是可变的,它们提供了在已有字符串基础上添加、删除、替换字符的方法,如`append()`、`insert()`、`delete()`等,而不会每次操作都创建新对象。 - `StringBuilder`是非线程安全...