#java #string #split
#java #строка #разделить
Вопрос:
разрешать только метод 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 ? ?
}
Комментарии:
1. Пожалуйста, объясните подробнее, чего вы пытаетесь достичь.
2. я хотел бы разделить «345, 688″ ->»345» «688»
3. В чем причина этого ограничения? Такие собственные методы, как
split
, делают именно это.4. назначение допускает только эти два метода….
Ответ №1:
Ваш код нуждается в некотором рефакторинге, попробуйте это:
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;
}
Это приведет к удалению запятой, которая, по-видимому, является тем, что вы искали. Я использовал только два метода, которые вы просили. По сути, этот код получает индекс запятой, затем восстанавливает две части строк, пока не достигнет точки запятой, и пропускает ее. Для вашей ситуации могут потребоваться некоторые незначительные изменения, но это должно быть то, что вы ищете.
Ответ №2:
Это можно сделать следующим образом, предположим, что строка s =»200,300,450,600″, и вам нужно разделить данную строку с помощью charAt()
string.length()
метода and, затем сначала добавьте ‘,’ в конец строки, как указано в приведенном ниже коде.
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 (все числа будут напечатаны в следующей строке)
Ответ №3:
Если вы хотите использовать только 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 resu<
}
Ответ №4:
Вы можете сделать это следующим образом:
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 resu<
}
}
Вывод:
"345" "688"
Ответ №5:
если вы хотите использовать 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
Комментарии:
1. @TrushitShekhda это приводит… можете ли вы объяснить, что в этом плохого? и вы, кажется, скопировали мой ответ
2. Вы отредактировали свой ответ, до этого ваш код не был корректным, проверьте историю редактирования после просмотра моего ответа вы изменили свой ответ, и я не скопировал ваш ответ, наша логика такая же
Ответ №6:
Вы можете достичь этого, просто выполнив это, это даст вам желаемый результат.
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));