Java tutorial
//package com.java2s; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.text.CharacterIterator; import java.text.StringCharacterIterator; public class Main { protected static boolean checkPrefixPart(String s) { if (s.length() == 0) return true; CharacterIterator cIter = new StringCharacterIterator(s); char ch = cIter.first(); if (!checkNameStartChar(ch)) return false; if (ch == '_') // Can't start with _ (bnodes labels handled separately) return false; return checkNameTail(cIter); } protected static boolean checkNameStartChar(char ch) { if (Character.isLetter(ch)) return true; if (ch == '_') return true; return false; } private static boolean checkNameTail(CharacterIterator cIter) { // Assumes cIter.first already called but nothing else. // Skip first char. char ch = cIter.next(); for (; ch != java.text.CharacterIterator.DONE; ch = cIter.next()) { if (!checkNameChar(ch)) return false; } return true; } protected static boolean checkNameChar(char ch) { if (Character.isLetterOrDigit(ch)) return true; if (ch == '_') return true; if (ch == '-') return true; return false; } }