プロが教える店舗&オフィスのセキュリティ対策術

にはどうしたらいいのでしょうか?
例えば
String s="_abc_12-2\t3z\n";
のとき
sが"1223"を指し示すようにするにはどうしたらいいのでしょうか?

A 回答 (2件)

この手の処理は、単純に1文字づつ抜き出して検査するのがいいと思うのですが、


あえて何かを用いるとすると、正規表現かな~・・
正規表現、あまり得意じゃないのですが(だったら書き込むなという噂もありますが)
こんな感じでしょうか。
間違った部分はどなたか修正お願いします。

Pattern pattern = Pattern.compile("[^0-9]");
Matcher matcher = pattern.matcher("_abc_12-2\t3z\n");
String str = matcher.replaceAll("");
    • good
    • 1
この回答へのお礼

ありがとうございます
その方法を試して見たいと思います

お礼日時:2006/10/28 14:15

charの0~9は int の48~57に相当することを使って、


class CharArrayEditor001 {
public static void main(String args[]){
String s ="_abc_12-2\t3z\n";
for( int i = 0; i < s.length() - 1; i++){
char c = s.charAt(i);
if(c > 48 && c < 57){
System.out.println(c);
}
}
}
}
    • good
    • 0
この回答へのお礼

ありがとうございます
参考に以下のコードで試しました

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test
{
public static void main(String[] args)
{
String s="abc_12de\tf4d\n";
Pattern pattern = Pattern.compile("[^0-9]");
Matcher matcher = pattern.matcher(s);
String str = matcher.replaceAll("");
System.out.println(str);
str="";
for( int i=0;i<s.length();i++)
{
if(Character.isDigit(s.charAt(i)))
{
str+=s.substring(i,i+1);
}
}
System.out.println(str);
}
}

お礼日時:2006/10/28 22:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!