簡體   English   中英

如何使用 charAt 和 string.length() 拆分字符串

[英]how to split a string by using charAt and string.length()

只允許 charAt 方法和 length 方法。 非常感謝!

void runApp() {
  String str = "345, 688"; //->"345" "688"
  String value = strCut(str);
}

String strCut(String str) {
    int result = 0;

    for (int i = 0; i < str.length(); i++) {
      if (str.charAt(3) == ',') {
        what should i write here ? ?
      }

你的代碼需要一些重構,試試這個:

void runApp() {
 String str = "345, 688"; //->"345" "688"
 String value = strCut(str);
}

String strCut(String str) {
int result = 0;

for (int i = 0; i < str.length(); i++) {
  int cutStringIndex;
  if (str.charAt(i) == ',') {
       cutStringIndex = i;
  }
  for (int i = 0; i < cutStringIndex(); i++) {
  String cutStringOne = "";
  cutStringOne = cutStringOne + str.charAt(i);
  }
  for (int i = cutStringIndex() + 1; i < str.length(); i++) {
  String cutStringTwo = "";
  cutStringTwo = cutStringTwo + str.charAt(i);
  }
  cutString = cutStringOne + " " + cutStringTwo;
 return cutString;
 }

這將取出似乎是您要查找的逗號。 我只使用了你要求的兩種方法。 本質上,這段代碼獲取逗號的索引,然后重建字符串的兩個部分,直到到達逗號的位置,然后跳過它。 它可能需要針對您的情況進行一些小的調整,但這應該是您正在尋找的。

可以這樣做,假設 String s="200,300,450,600" 並且您必須使用charAt()string.length()方法拆分給定的字符串,然后首先在字符串的末尾添加 ',',如下面的代碼所示.

String s="200,300,450,600,",str="";
        for(int i=0;i<s.length();i++){
            char ch=s.charAt(i); 
            if(ch!=','){ //checking if particular character is not ','
               str+=ch; //storing it in str string
            }
            else{
               System.out.println(str); //printing each string before ',' is found
               str="";
            }
        }

上面代碼的輸出將是: 200 300 450 600 (所有數字都將打印在下一行)

如果你只想使用 charAt 和 string.length() 那么你應該試試這個

void runApp{
    String str = "345, 688, 123";
    String values[] = strCut(str); //values[0] = 345, values[1] = 688, values[2] = 123
    for(String value : values){
        System.out.print(value + " ");
    }
}


 String[] strCut(String str) {
    int elements = 1;
    int index = 0;
    
    for(int i = 0; i < str.length(); i++){
        if(str.charAt(i) == ',')
            elements++;
    }
    
    String result[] = new String[elements];
    for(int i = 0; i < result.length; i++)
        result[i] = "";
        
    for (int i = 0; i < str.length(); i++) {
      if (str.charAt(i) != ',') {
          if(str.charAt(i) != ' ')
              result[index] = result[index] + str.charAt(i);
      } 
      else index++;
      
    }
    return result;
}

你可以這樣做:

public class Main {
    public static void main(String[] args) {
        // Test
        runApp();
    }

    static void runApp() {
        String str = "345, 688"; // Expected->"345" "688"
        String value = strCut(str);
        System.out.println(value);// Display the result
    }

    static String strCut(String str) {
        // Initialise result with a "
        String result = "\"";

        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) == ',') {// Check char at the index, i
                // Add " at the end of one number and again " at the start of the next
                result += "\" \"";
            } else if (str.charAt(i) != ' ') {
                result += str.charAt(i);
            }
        }

        // Add " at the end
        result += "\"";

        // Finally, return result
        return result;
    }
}

輸出:

"345" "688"

如果你一定要使用charAt()然后像下面這樣..

    ArrayList<String> stringArr= new ArrayList<String>();
    int startindex=0;
    for (int i = 0; i < str.length(); i++) 
{
   
      if (str.charAt(i) == ',')
    {
         String partString = str.substring(startindex, i) ;
          startindex=i+1;

          stringArr.add(partString);
    }
    
        }

        String lastString = str.substring(startindex, str.length()) ;
    stringArr.add(lastString);

或者您可以簡單地使用如下split方法

String[] parts = string.split(",");
String part1 = parts[0]; // 345
String part2 = parts[1]; // 688

您可以通過簡單地執行此操作來實現它,這將為您提供所需的結果。

String str = "345,688";
ArrayList<String> stringArray = new ArrayList<>();
int startindex=0;
for (int i = 0; i < str.length(); i++) {
    if(str.charAt(i) == ',') {
        String subStr = str.substring(startindex, i);
        startindex = i+1;
        stringArray.add(subStr);
    }
}
stringArray.add(str.substring(startindex));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM