Javaに値を持つ文字列変数があります:
String result="34.1 -118.33\n<!--ABCDEFG-->";
最終的な文字列に値を含めたい:
String result="34.1 -118.33";
これどうやってするの?私はJavaプログラミング言語が初めてです。
ありがとう、
Javaに値を持つ文字列変数があります:
String result="34.1 -118.33\n<!--ABCDEFG-->";
最終的な文字列に値を含めたい:
String result="34.1 -118.33";
これどうやってするの?私はJavaプログラミング言語が初めてです。
ありがとう、
以下を使用できます。
result = result.split("\n")[0];
\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 番目の方法も機能することを示すために使用しただけです。)
多くの良い答えがありますが、私はcommons-langStringUtils
から使用します。代替案よりも読みやすいと思います:StringUtils.substringBefore()
String result = StringUtils.substringBefore("34.1 -118.33\n<!--ABCDEFG-->", "\n");
正規表現を使用:
result = result.replaceAll("\n.*", "");
replaceAll()
正規表現を使用してターゲットを見つけます。これを「何もない」に置き換えました-ターゲットを効果的に削除します。
正規表現で指定したターゲットは、\n.*
「改行文字とその後のすべて」を意味します
どうですか
Scanner scanner = new Scanner(result);
String line = scanner.nextLine();//will contain 34.1 -118.33
これを試して:
String result = "34.1 -118.33\n<!--ABCDEFG-->";
result = result.substring(0, result.indexOf("\n"));
result = result.replaceAll("\n","");
または使用できます
String[] split = result.split("\n");
a を使用Scanner
して、区切り文字と元の文字列を渡します。
result = new Scanner(result).useDelimiter("\n").next();