相关疑难解决方法(0)

StringBuilder和StringBuffer之间的区别

StringBuffer和之间的主要区别是StringBuilder什么?在决定其中任何一个时,是否存在任何性能问题?

java stringbuilder stringbuffer

1510
推荐指数
18
解决办法
77万
查看次数

String,StringBuffer和StringBuilder

请告诉我一个实时的情况来比较String,StringBufferStringBuilder

java oop string stringbuilder

206
推荐指数
6
解决办法
16万
查看次数

用Java反转"Hello World"字符串的每个单词

我要扭转各个人在Java中的String(不是整个字符串,只是每个人的字)的字.

示例:如果输入String为"Hello World",则输出应为"olleH dlroW".

java string reverse

39
推荐指数
6
解决办法
16万
查看次数

哪个变体字符串反向更好?

我想知道哪个程序变量更好运行时?
两种变体看起来都很容易实现.但什么是更好的使用和在哪些情况下?

字符串反转:

public static String reverse(String s)
{
    String rev = "";
    for (int i = s.length() - 1; i >= 0; i--)
        rev += s.charAt(i);
    return rev;
}
Run Code Online (Sandbox Code Playgroud)

StringBuilder反向:

public static String reverse(String s)
{
    StringBuilder rev = new StringBuilder();
    for (int i = s.length() - 1; i >= 0; i--)
        rev.append(s.charAt(i));
    return rev.toString();
}
Run Code Online (Sandbox Code Playgroud)

java string

5
推荐指数
2
解决办法
227
查看次数

确定字符串是否为回文的最快方法

如果字符串是回文(字符串可以是带有大写或小写字母,空格等的命题),我需要一种能够以最快的执行时间进行验证的算法.所有这些都在Java中.我有一个样本:

bool isPalindrome(string s) {
    int n = s.length();
    s = s.toLowerCase();
    for (int i = 0; i < (n / 2) + 1; ++i) {
        if (s.charAt(i) != s.charAt(n - i - 1)) {
            return false;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我使用.toLowerCase()函数将字符串转换为小写字母,但我不知道它对执行时间有多大影响.

而且我不知道如何以有效的方式解决标点符号和单词之间的空格问题.

java performance palindrome

4
推荐指数
1
解决办法
9833
查看次数

编写反向字符串O(N)时间复杂度和O(N)空间复杂度的程序

我被要求解决低于N ^ 2时间复杂度和O(N)空间复杂度的以下问题:

为以下情况编写程序反向字符串:

输入: - "Hello World"输出: - "olleH dlroW"

我试图弄清楚它,但无论我尝试什么,我都无法想出时间复杂度低于N ^ 2,我的代码可以在下面看到,你有什么建议我怎么能想出来线性时间的解决方案?

注意:不允许使用内置方法

 public static String stringReverser(String str) {
        if (str == null || str.isEmpty()) {
            throw new IllegalArgumentException();
        }
        if (str.length() < 2) {
            return str;
        }
        String[] strArr = str.split(" ");
        StringBuffer newHolder = new StringBuffer();
        for (int i = 0; i < strArr.length; i++) {
            int j = 0;
            int len = strArr[i].length();
            char[] newCharStr = strArr[i].toCharArray();
            while (j < len) {
                char temp = …
Run Code Online (Sandbox Code Playgroud)

java string algorithm reverse swap

3
推荐指数
1
解决办法
2450
查看次数

如何在Java中将String转换为适当的位置

如何在Java中将String转换为适当的位置

输入字符串:1234输出应该:4321

我试过的.

public static void main(String args[]) 
{ 
 String number = "1234"; 
 System.out.println("original String: " + number); String reversed = inPlaceReverse(number);
 System.out.println("reversed String: " + reversed);
}



public static String inPlaceReverse(final String input) 
{
   final StringBuilder builder = new StringBuilder(input); 
   int length = builder.length();
   for (int i = 0; i < length / 2; i++)
   {
      final char current = builder.charAt(i); 
      final int otherEnd = length - i - 1;
      builder.setCharAt(i, builder.charAt(otherEnd)); // swap 
      builder.setCharAt(otherEnd, current); 
   }
 return builder.toString(); …
Run Code Online (Sandbox Code Playgroud)

java string

2
推荐指数
1
解决办法
1万
查看次数

减少For循环 - 代码优化

我是Java新手,正在寻找代码优化技术.这段代码使用两个for循环给出了预期的输出,我想减少/消除循环(如果可能的话).

public static void main(String[] args) {
        String dummy = "Hello how are you";
        String[] strArr = dummy.split(" ");
        for(int i=0; i < strArr.length;i++){
            String word = strArr[i];
            for(int j=word.length(); j > 0; j--){
                System.out.print(word.charAt(j - 1));
            }
            System.out.print(" ");
        }
    }
Run Code Online (Sandbox Code Playgroud)

输出: olleH woh era uoy

请指教.

java optimization

1
推荐指数
1
解决办法
429
查看次数

Collections.reverse方法不反转条目

我下面的代码应该接受用户的整数,然后以相反的顺序打印他们输入的任何整数。我没有收到任何错误,但是当我运行该程序时,整数并未反向打印。有人可以帮我找出原因吗?

import java.util.*;

public class ReverseDigits {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String response;

        System.out.println("Please enter a whole number.");
        response = sc.next();

        reverseDigit(response);
    }

    public static void reverseDigit(String digit) {
        ArrayList al = new ArrayList();
        al.add(digit);
        Collections.reverse(al);
        System.out.println("Your number in reverse order is: " + al);
    }

}
Run Code Online (Sandbox Code Playgroud)

java collections arraylist

0
推荐指数
1
解决办法
1793
查看次数