2016-05-10 2 views
1
String str = "a,b","c,d","1,2","5.6"; 

В вышеизложенном я хочу удалить запятую внутри своих двойных кавычек. Мой результат должен бытьjava :: Удалить запятую внутри котировок внутри строки

str = "ab","cd","12","5.6". 

Я искал много, чтобы получить ответ. Было бы здорово, если бы вы могли помочь мне в JAVA.

+0

ли ул должен быть один 'String' или' String [] '? – Albert

+2

Я думаю, что неправильное назначение строки –

+2

Код, который вы вставили неправильно. Это не скомпилируется. –

ответ

2

Я думаю, вы должны использовать массив строк и заменить все элементы по отдельности:

String[] replaceArray = {"a,b","c,d","1,2","5.6"}; 
for(int i=0; i<replaceArray.length; i++){ 
    replaceArray[i] = replaceArray[i].replaceAll(",",""); 
} 
3

Прежде всего ваш String str не компилируется. Он должен быть

String str = "\"a,b\",\"c,d\",\"1,2\",\"5.6\""; 

Для того, чтобы заменить , в двойных кавычках, вам нужно

System.out.println(str.replaceAll("(\".?),(.?\")", "$1$2")); 

Выход:

"ab","cd","12","5.6" 

Выше решения предполагает, что вы всегда имеют 1 или нет символа с обеих сторон , внутри двойной кавычки.

Если может быть несколько символов, чем те, может быть также совпадающим с помощью нижеприведенного выражения

System.out.println(str.replaceAll("(\"\\w*),(\\w*\")", "$1$2")); 

Здесь \w предопределен класс символов, чтобы соответствовать A word character: [a-zA-Z_0-9]

Надеются, что это помогает

1

Может быть, бит уродливый, но вы можете использовать два раза String#replace - первое удаление всех запятых, а второе повторное добавление запятой назад между котировками:

String str = "\"a,b\",\"c,d\",\"1,2\",\"5.6\""; 
System.out.println(str.replace(",", "").replace("\"\"", "\",\"")); 

Выход:

"ab","cd","12","5.6" 

Возможно, лучше было бы использовать регулярное выражение для достижения той же цели, на одном дыхании, но это на самом деле не мой опыт, чтобы быть честным.

0

Выполнить этот код

 String str = "\"a,b\",\"c,d\",\"1,2\",\"5,6\""; 
     str=str.replace("\"",""); 
     String[] parts = str.split(","); 

     String outputString=""; 
     int literalCount=2; 
     String output=""; 
     for (String part : parts) { 
      if(literalCount==0) { 
       outputString=outputString+output+","; 
       output = part; 
       literalCount=2; 
      }else 
      { 
       output+=part; 
      } 
      literalCount--; 

     } 
     outputString="\""+outputString+output+"\""; 
     System.out.println(outputString); 
Смежные вопросы