38

Javaに値を持つ文字列変数があります:

String result="34.1 -118.33\n<!--ABCDEFG-->";

最終的な文字列に値を含めたい:

String result="34.1 -118.33";

これどうやってするの?私はJavaプログラミング言語が初めてです。

ありがとう、

4

10 に答える 10

56

以下を使用できます。

result = result.split("\n")[0];
于 2013-08-13T22:12:31.803 に答える
34

\n前にすべて(または他のリテラル文字列/文字) が必要であると仮定すると、次のように使用indexOf()する必要がありsubstring()ます。

result = result.substring(0, result.indexOf('\n'));

特定の正規表現の前の部分を抽出する場合は、次を使用できますsplit()

result = result.split(regex, 2)[0];

String result = "34.1 -118.33\n<!--ABCDEFG-->";

System.out.println(result.substring(0, result.indexOf('\n')));
System.out.println(result.split("\n", 2)[0]);
34.1 -118.33
34.1 -118.33

(明らかに\n意味のある正規表現ではありません。2 番目の方法も機能することを示すために使用しただけです。)

于 2013-08-13T22:06:41.107 に答える
13

多くの良い答えがありますが、私はcommons-langStringUtilsから使用します。代替案よりも読みやすいと思います:StringUtils.substringBefore()

String result = StringUtils.substringBefore("34.1 -118.33\n<!--ABCDEFG-->", "\n");
于 2013-08-13T22:32:24.963 に答える
5

正規表現を使用:

result = result.replaceAll("\n.*", "");

replaceAll()正規表現を使用してターゲットを見つけます。これを「何もない」に置き換えました-ターゲットを効果的に削除します。

正規表現で指定したターゲットは、\n.*「改行文字とその後のすべて」を意味します

于 2013-08-13T22:14:57.833 に答える
3

どうですか

Scanner scanner = new Scanner(result);
String line = scanner.nextLine();//will contain 34.1 -118.33
于 2013-08-13T22:10:27.120 に答える
3

これを試して:

String result = "34.1 -118.33\n<!--ABCDEFG-->";
result = result.substring(0, result.indexOf("\n"));
于 2013-08-13T22:07:28.233 に答える
3

result = result.replaceAll("\n",""); または使用できます

 String[] split = result.split("\n");
于 2013-08-13T22:15:19.000 に答える
2

a を使用Scannerして、区切り文字と元の文字列を渡します。

result = new Scanner(result).useDelimiter("\n").next();
于 2013-08-13T22:10:03.587 に答える