- 所有类 (Java 2 Platform SE 5.0)
- 已过时的 API
- 此 API 文档的组织方式
- 概述 (Java 2 Platform SE 5.0)
- Java 2 Platform 软件包
- 所有软件包的分层结构
- java.awt 接口 ActiveEvent
- java.awt 接口 Adjustable
- java.awt 类 AlphaComposite
- java.awt 类 AWTError
- java.awt 类 AWTEvent
- java.awt 类 AWTEventMulticaster
- java.awt 类 AWTException
- java.awt 类 AWTKeyStroke
- java.awt 类 AWTPermission
- java.awt 类 BasicStroke
- java.awt 类 BorderLayout
- java.awt 类 BufferCapabilities.FlipContents
- java.awt 类 BufferCapabilities
- java.awt 类 Button
- java.awt 类 Canvas
- java.awt 类 CardLayout
- java.awt 类 Checkbox
- java.awt 类 CheckboxGroup
- java.awt 类 CheckboxMenuItem
- java.awt 类 Choice
- java.awt 类 Color
- java.awt 类 Component
- java.awt 类 ComponentOrientation
- java.awt 接口 Composite
- java.awt 接口 CompositeContext
- java.awt 类 Container
- java.awt 类 ContainerOrderFocusTraversalPolicy
- java.awt 类 Cursor
- java.awt 类 DefaultFocusTraversalPolicy
- java.awt 类 DefaultKeyboardFocusManager
- java.awt 类 Dialog
- java.awt 类 Dimension
- java.awt 类 DisplayMode
- java.awt 类 Event
- java.awt 类 EventQueue
- java.awt 类 FileDialog
- java.awt 类 FlowLayout
- java.awt 类 FocusTraversalPolicy
- java.awt 类 Font
- java.awt 类 FontFormatException
- java.awt 类 FontMetrics
- java.awt 类 Frame
- java.awt 类 GradientPaint
- java.awt 类 Graphics
- java.awt 类 Graphics2D
- java.awt 类 GraphicsConfigTemplate
- java.awt 类 GraphicsConfiguration
- java.awt 类 GraphicsDevice
- java.awt 类 GraphicsEnvironment
- java.awt 类 GridBagConstraints
- java.awt 类 GridBagLayout
- java.awt 类 GridLayout
- java.awt 类 HeadlessException
- java.awt 类 IllegalComponentStateException
- java.awt 类 Image
- java.awt 类 ImageCapabilities
- java.awt 类 Insets
- java.awt 接口 ItemSelectable
- java.awt 类 JobAttributes.DefaultSelectionType
- java.awt 类 JobAttributes.DestinationType
- java.awt 类 JobAttributes.DialogType
- java.awt 类 JobAttributes
- java.awt 类 JobAttributes.MultipleDocumentHandlingType
- java.awt 类 JobAttributes.SidesType
- java.awt 类 KeyboardFocusManager
- java.awt 接口 KeyEventDispatcher
- java.awt 接口 KeyEventPostProcessor
- java.awt 类 Label
- java.awt 接口 LayoutManager
- java.awt 接口 LayoutManager2
- java.awt 类 List
- java.awt 类 MediaTracker
- java.awt 类 Menu
- java.awt 类 MenuBar
- java.awt 类 MenuComponent
- java.awt 接口 MenuContainer
- java.awt 类 MenuItem
- java.awt 类 MenuShortcut
- java.awt 类 MouseInfo
- java.awt (Java 2 Platform SE 5.0)
- 软件包 java.awt
- java.awt 类 PageAttributes.ColorType
- java.awt 类 PageAttributes
- java.awt 类 PageAttributes.MediaType
- java.awt 类 PageAttributes.OrientationRequestedType
- java.awt 类 PageAttributes.OriginType
- java.awt 类 PageAttributes.PrintQualityType
- java.awt 接口 Paint
- java.awt 接口 PaintContext
- java.awt 类 Panel
- java.awt 类 Point
- java.awt 类 PointerInfo
- java.awt 类 Polygon
- java.awt 类 PopupMenu
- java.awt 接口 PrintGraphics
- java.awt 类 PrintJob
- java.awt 类 Rectangle
- java.awt 类 RenderingHints
- java.awt 类 RenderingHints.Key
- java.awt 类 Robot
- java.awt 类 Scrollbar
- java.awt 类 ScrollPane
- java.awt 类 ScrollPaneAdjustable
- java.awt 接口 Shape
- java.awt 接口 Stroke
- java.awt 类 SystemColor
- java.awt 类 TextArea
- java.awt 类 TextComponent
- java.awt 类 TextField
- java.awt 类 TexturePaint
- java.awt 类 Toolkit
- java.awt 接口 Transparency
- java.awt 类 Window
- java.awt.color 类 CMMException
- java.awt.color 类 ColorSpace
- java.awt.color 类 ICC_ColorSpace
- java.awt.color 类 ICC_Profile
- java.awt.color 类 ICC_ProfileGray
- java.awt.color 类 ICC_ProfileRGB
- java.awt.color (Java 2 Platform SE 5.0)
- 软件包 java.awt.color
- java.awt.color 类 ProfileDataException
- java.awt.datatransfer 类 Clipboard
- java.awt.datatransfer 接口 ClipboardOwner
- java.awt.datatransfer 类 DataFlavor
- java.awt.datatransfer 类 FlavorEvent
- java.awt.datatransfer 接口 FlavorListener
- java.awt.datatransfer 接口 FlavorMap
- java.awt.datatransfer 接口 FlavorTable
- java.awt.datatransfer 类 MimeTypeParseException
- java.awt.datatransfer (Java 2 Platform SE 5.0)
- 软件包 java.awt.datatransfer
- java.awt.datatransfer 类 StringSelection
- java.awt.datatransfer 类 SystemFlavorMap
- java.awt.datatransfer 接口 Transferable
- java.awt.datatransfer 类 UnsupportedFlavorException
- java.awt.dnd 接口 Autoscroll
- java.awt.dnd 类 DnDConstants
- java.awt.dnd 类 DragGestureEvent
- java.awt.dnd 接口 DragGestureListener
- java.awt.dnd 类 DragGestureRecognizer
- java.awt.dnd 类 DragSource
- java.awt.dnd 类 DragSourceAdapter
- java.awt.dnd 类 DragSourceContext
- java.awt.dnd 类 DragSourceDragEvent
- java.awt.dnd 类 DragSourceDropEvent
- java.awt.dnd 类 DragSourceEvent
- java.awt.dnd 接口 DragSourceListener
- java.awt.dnd 接口 DragSourceMotionListener
- java.awt.dnd 类 DropTarget.DropTargetAutoScroller
- java.awt.dnd 类 DropTarget
- java.awt.dnd 类 DropTargetAdapter
- java.awt.dnd 类 DropTargetContext
- java.awt.dnd 类 DropTargetDragEvent
- java.awt.dnd 类 DropTargetDropEvent
- java.awt.dnd 类 DropTargetEvent
- java.awt.dnd 接口 DropTargetListener
- java.awt.dnd 类 InvalidDnDOperationException
- java.awt.dnd 类 MouseDragGestureRecognizer
- java.awt.dnd (Java 2 Platform SE 5.0)
- 软件包 java.awt.dnd
- java.awt.event 类 ActionEvent
- java.awt.event 接口 ActionListener
- java.awt.event 类 AdjustmentEvent
- java.awt.event 接口 AdjustmentListener
- java.awt.event 接口 AWTEventListener
- java.awt.event 类 AWTEventListenerProxy
- java.awt.event 类 ComponentAdapter
- java.awt.event 类 ComponentEvent
- java.awt.event 接口 ComponentListener
- java.awt.event 类 ContainerAdapter
- java.awt.event 类 ContainerEvent
- java.awt.event 接口 ContainerListener
- java.awt.event 类 FocusAdapter
- java.awt.event 类 FocusEvent
- java.awt.event 接口 FocusListener
- java.awt.event 类 HierarchyBoundsAdapter
- java.awt.event 接口 HierarchyBoundsListener
- java.awt.event 类 HierarchyEvent
- java.awt.event 接口 HierarchyListener
- java.awt.event 类 InputEvent
- java.awt.event 类 InputMethodEvent
- java.awt.event 接口 InputMethodListener
- java.awt.event 类 InvocationEvent
- java.awt.event 类 ItemEvent
- java.awt.event 接口 ItemListener
- java.awt.event 类 KeyAdapter
- java.awt.event 类 KeyEvent
- java.awt.event 接口 KeyListener
- java.awt.event 类 MouseAdapter
- java.awt.event 类 MouseEvent
- java.awt.event 接口 MouseListener
- java.awt.event 类 MouseMotionAdapter
- java.awt.event 接口 MouseMotionListener
- java.awt.event 类 MouseWheelEvent
- java.awt.event 接口 MouseWheelListener
- java.awt.event (Java 2 Platform SE 5.0)
- 软件包 java.awt.event
- java.awt.event 类 PaintEvent
- java.awt.event 类 TextEvent
- java.awt.event 接口 TextListener
- java.awt.event 类 WindowAdapter
- java.awt.event 类 WindowEvent
- java.awt.event 接口 WindowFocusListener
- java.awt.event 接口 WindowListener
- java.awt.event 接口 WindowStateListener
- java.awt.font 类 FontRenderContext
- java.awt.font 类 GlyphJustificationInfo
- java.awt.font 类 GlyphMetrics
- java.awt.font 类 GlyphVector
- java.awt.font 类 GraphicAttribute
- java.awt.font 类 ImageGraphicAttribute
- java.awt.font 类 LineBreakMeasurer
- java.awt.font 类 LineMetrics
- java.awt.font 接口 MultipleMaster
- java.awt.font 类 NumericShaper
- java.awt.font 接口 OpenType
- java.awt.font (Java 2 Platform SE 5.0)
- 软件包 java.awt.font
- java.awt.font 类 ShapeGraphicAttribute
- java.awt.font 类 TextAttribute
- java.awt.font 类 TextHitInfo
- java.awt.font 类 TextLayout.CaretPolicy
- java.awt.font 类 TextLayout
- java.awt.font 类 TextMeasurer
- java.awt.font 类 TransformAttribute
- java.awt.geom 类 AffineTransform
- java.awt.geom 类 Arc2D.Double
- java.awt.geom 类 Arc2D.Float
- java.awt.geom 类 Arc2D
- java.awt.geom 类 Area
- java.awt.geom 类 CubicCurve2D.Double
- java.awt.geom 类 CubicCurve2D.Float
- java.awt.geom 类 CubicCurve2D
- java.awt.geom 类 Dimension2D
- java.awt.geom 类 Ellipse2D.Double
- java.awt.geom 类 Ellipse2D.Float
- java.awt.geom 类 Ellipse2D
- java.awt.geom 类 FlatteningPathIterator
- java.awt.geom 类 GeneralPath
- java.awt.geom 类 IllegalPathStateException
- java.awt.geom 类 Line2D.Double
- java.awt.geom 类 Line2D.Float
- java.awt.geom 类 Line2D
- java.awt.geom 类 NoninvertibleTransformException
- java.awt.geom (Java 2 Platform SE 5.0)
- 软件包 java.awt.geom
- java.awt.geom 接口 PathIterator
- java.awt.geom 类 Point2D.Double
- java.awt.geom 类 Point2D.Float
- java.awt.geom 类 Point2D
- java.awt.geom 类 QuadCurve2D.Double
- java.awt.geom 类 QuadCurve2D.Float
- java.awt.geom 类 QuadCurve2D
- java.awt.geom 类 Rectangle2D.Double
- java.awt.geom 类 Rectangle2D.Float
- java.awt.geom 类 Rectangle2D
- java.awt.geom 类 RectangularShape
- java.awt.geom 类 RoundRectangle2D.Double
- java.awt.geom 类 RoundRectangle2D.Float
- java.awt.geom 类 RoundRectangle2D
- java.awt.im 类 InputContext
- java.awt.im 类 InputMethodHighlight
- java.awt.im 接口 InputMethodRequests
- java.awt.im 类 InputSubset
- java.awt.im (Java 2 Platform SE 5.0)
- 软件包 java.awt.im
- java.awt.im.spi 接口 InputMethod
- java.awt.im.spi 接口 InputMethodContext
- java.awt.im.spi 接口 InputMethodDescriptor
- java.awt.im.spi (Java 2 Platform SE 5.0)
- 软件包 java.awt.im.spi
- java.awt.image 类 AffineTransformOp
- java.awt.image 类 AreaAveragingScaleFilter
- java.awt.image 类 BandCombineOp
- java.awt.image 类 BandedSampleModel
- java.awt.image 类 BufferedImage
- java.awt.image 类 BufferedImageFilter
- java.awt.image 接口 BufferedImageOp
- java.awt.image 类 BufferStrategy
- java.awt.image 类 ByteLookupTable
- java.awt.image 类 ColorConvertOp
- java.awt.image 类 ColorModel
- java.awt.image 类 ComponentColorModel
- java.awt.image 类 ComponentSampleModel
- java.awt.image 类 ConvolveOp
- java.awt.image 类 CropImageFilter
- java.awt.image 类 DataBuffer
- java.awt.image 类 DataBufferByte
- java.awt.image 类 DataBufferDouble
- java.awt.image 类 DataBufferFloat
- java.awt.image 类 DataBufferInt
- java.awt.image 类 DataBufferShort
- java.awt.image 类 DataBufferUShort
- java.awt.image 类 DirectColorModel
- java.awt.image 类 FilteredImageSource
- java.awt.image 接口 ImageConsumer
- java.awt.image 类 ImageFilter
- java.awt.image 接口 ImageObserver
- java.awt.image 接口 ImageProducer
- java.awt.image 类 ImagingOpException
- java.awt.image 类 IndexColorModel
- java.awt.image 类 Kernel
- java.awt.image 类 LookupOp
- java.awt.image 类 LookupTable
- java.awt.image 类 MemoryImageSource
- java.awt.image 类 MultiPixelPackedSampleModel
- java.awt.image (Java 2 Platform SE 5.0)
- 软件包 java.awt.image
- java.awt.image 类 PackedColorModel
- java.awt.image 类 PixelGrabber
- java.awt.image 类 PixelInterleavedSampleModel
- java.awt.image 类 Raster
- java.awt.image 类 RasterFormatException
- java.awt.image 接口 RasterOp
- java.awt.image 接口 RenderedImage
- java.awt.image 类 ReplicateScaleFilter
- java.awt.image 类 RescaleOp
- java.awt.image 类 RGBImageFilter
- java.awt.image 类 SampleModel
- java.awt.image 类 ShortLookupTable
- java.awt.image 类 SinglePixelPackedSampleModel
- java.awt.image 接口 TileObserver
- java.awt.image 类 VolatileImage
- java.awt.image 类 WritableRaster
- java.awt.image 接口 WritableRenderedImage
- java.awt.image.renderable 接口 ContextualRenderedImageFactory
- java.awt.image.renderable (Java 2 Platform SE 5.0)
- 软件包 java.awt.image.renderable
- java.awt.image.renderable 类 ParameterBlock
- java.awt.image.renderable 接口 RenderableImage
- java.awt.image.renderable 类 RenderableImageOp
- java.awt.image.renderable 类 RenderableImageProducer
- java.awt.image.renderable 类 RenderContext
- java.awt.image.renderable 接口 RenderedImageFactory
- java.awt.print 类 Book
- java.awt.print (Java 2 Platform SE 5.0)
- 软件包 java.awt.print
- java.awt.print 接口 Pageable
- java.awt.print 类 PageFormat
- java.awt.print 类 Paper
- java.awt.print 接口 Printable
- java.awt.print 类 PrinterAbortException
- java.awt.print 类 PrinterException
- java.awt.print 接口 PrinterGraphics
- java.awt.print 类 PrinterIOException
- java.awt.print 类 PrinterJob
- java.io 类 BufferedInputStream
- java.io 类 BufferedOutputStream
- java.io 类 BufferedReader
- java.io 类 BufferedWriter
- java.io 类 ByteArrayInputStream
- java.io 类 ByteArrayOutputStream
- java.io 类 CharArrayReader
- java.io 类 CharArrayWriter
- java.io 类 CharConversionException
- java.io 接口 Closeable
- java.io 接口 DataInput
- java.io 类 DataInputStream
- java.io 接口 DataOutput
- java.io 类 DataOutputStream
- java.io 类 EOFException
- java.io 接口 Externalizable
- java.io 类 File
- java.io 类 FileDescriptor
- java.io 接口 FileFilter
- java.io 类 FileInputStream
- java.io 接口 FilenameFilter
- java.io 类 FileNotFoundException
- java.io 类 FileOutputStream
- java.io 类 FilePermission
- java.io 类 FileReader
- java.io 类 FileWriter
- java.io 类 FilterInputStream
- java.io 类 FilterOutputStream
- java.io 类 FilterReader
- java.io 类 FilterWriter
- java.io 接口 Flushable
- java.io 类 InputStream
- java.io 类 InputStreamReader
- java.io 类 InterruptedIOException
- java.io 类 InvalidClassException
- java.io 类 InvalidObjectException
- java.io 类 IOException
- java.io 类 LineNumberInputStream
- java.io 类 LineNumberReader
- java.io 类 NotActiveException
- java.io 类 NotSerializableException
- java.io 接口 ObjectInput
- java.io 类 ObjectInputStream.GetField
- java.io 类 ObjectInputStream
- java.io 接口 ObjectInputValidation
- java.io 接口 ObjectOutput
- java.io 类 ObjectOutputStream
- java.io 类 ObjectOutputStream.PutField
- java.io 类 ObjectStreamClass
- java.io 接口 ObjectStreamConstants
- java.io 类 ObjectStreamException
- java.io 类 ObjectStreamField
- java.io 类 OptionalDataException
- java.io 类 OutputStream
- java.io 类 OutputStreamWriter
- java.io (Java 2 Platform SE 5.0)
- 软件包 java.io
- java.io 类 PipedInputStream
- java.io 类 PipedOutputStream
- java.io 类 PipedReader
- java.io 类 PipedWriter
- java.io 类 PrintStream
- java.io 类 PrintWriter
- java.io 类 PushbackInputStream
- java.io 类 PushbackReader
- java.io 类 RandomAccessFile
- java.io 类 Reader
- java.io 类 SequenceInputStream
- java.io 接口 Serializable
- java.io 类 SerializablePermission
- java.io 类 StreamCorruptedException
- java.io 类 StreamTokenizer
- java.io 类 StringBufferInputStream
- java.io 类 StringReader
- java.io 类 StringWriter
- java.io 类 SyncFailedException
- java.io 类 UnsupportedEncodingException
- java.io 类 UTFDataFormatException
- java.io 类 WriteAbortedException
- java.io 类 Writer
- java.lang 类 AbstractMethodError
- java.lang 接口 Appendable
- java.lang 类 ArithmeticException
- java.lang 类 ArrayIndexOutOfBoundsException
- java.lang 类 ArrayStoreException
- java.lang 类 AssertionError
- java.lang 类 Boolean
- java.lang 类 Byte
- java.lang 类 Character
- java.lang 类 Character.Subset
- java.lang 类 Character.UnicodeBlock
- java.lang 接口 CharSequence
- java.lang 类 Class<T>
- java.lang 类 ClassCastException
- java.lang 类 ClassCircularityError
- java.lang 类 ClassFormatError
- java.lang 类 ClassLoader
- java.lang 类 ClassNotFoundException
- java.lang 接口 Cloneable
- java.lang 类 CloneNotSupportedException
- java.lang 接口 Comparable<T>
- java.lang 类 Compiler
- java.lang 注释类型 Deprecated
- java.lang 类 Double
- java.lang 类 Enum<E extends Enum<E>>
- java.lang 类 EnumConstantNotPresentException
- java.lang 类 Error
- java.lang 类 Exception
- java.lang 类 ExceptionInInitializerError
- java.lang 类 Float
- java.lang 类 IllegalAccessError
- java.lang 类 IllegalAccessException
- java.lang 类 IllegalArgumentException
- java.lang 类 IllegalMonitorStateException
- java.lang 类 IllegalStateException
- java.lang 类 IllegalThreadStateException
- java.lang 类 IncompatibleClassChangeError
- java.lang 类 IndexOutOfBoundsException
- java.lang 类 InheritableThreadLocal<T>
- java.lang 类 InstantiationError
- java.lang 类 InstantiationException
- java.lang 类 Integer
- java.lang 类 InternalError
- java.lang 类 InterruptedException
- java.lang 接口 Iterable<T>
- java.lang 类 LinkageError
- java.lang 类 Long
- java.lang 类 Math
- java.lang 类 NegativeArraySizeException
- java.lang 类 NoClassDefFoundError
- java.lang 类 NoSuchFieldError
- java.lang 类 NoSuchFieldException
- java.lang 类 NoSuchMethodError
- java.lang 类 NoSuchMethodException
- java.lang 类 NullPointerException
- java.lang 类 Number
- java.lang 类 NumberFormatException
- java.lang 类 Object
- java.lang 类 OutOfMemoryError
- java.lang 注释类型 Override
- java.lang (Java 2 Platform SE 5.0)
- 软件包 java.lang
- java.lang 类 Package
- java.lang 类 Process
- java.lang 类 ProcessBuilder
- java.lang 接口 Readable
- java.lang 接口 Runnable
- java.lang 类 Runtime
- java.lang 类 RuntimeException
- java.lang 类 RuntimePermission
- java.lang 类 SecurityException
- java.lang 类 SecurityManager
- java.lang 类 Short
- java.lang 类 StackOverflowError
- java.lang 类 StackTraceElement
- java.lang 类 StrictMath
- java.lang 类 String
- java.lang 类 StringBuffer
- java.lang 类 StringBuilder
- java.lang 类 StringIndexOutOfBoundsException
- java.lang 注释类型 SuppressWarnings
- java.lang 类 System
- java.lang 类 Thread
- java.lang 枚举 Thread.State
- java.lang 接口 Thread.UncaughtExceptionHandler
- java.lang 类 ThreadDeath
- java.lang 类 ThreadGroup
- java.lang 类 ThreadLocal<T>
- java.lang 类 Throwable
- java.lang 类 TypeNotPresentException
- java.lang 类 UnknownError
- java.lang 类 UnsatisfiedLinkError
- java.lang 类 UnsupportedClassVersionError
- java.lang 类 UnsupportedOperationException
- java.lang 类 VerifyError
- java.lang 类 VirtualMachineError
- java.lang 类 Void
- java.lang.annotation 接口 Annotation
- java.lang.annotation 类 AnnotationFormatError
- java.lang.annotation 类 AnnotationTypeMismatchException
- java.lang.annotation 注释类型 Documented
- java.lang.annotation 枚举 ElementType
- java.lang.annotation 类 IncompleteAnnotationException
- java.lang.annotation 注释类型 Inherited
- java.lang.annotation (Java 2 Platform SE 5.0)
- 软件包 java.lang.annotation
- java.lang.annotation 注释类型 Retention
- java.lang.annotation 枚举 RetentionPolicy
- java.lang.annotation 注释类型 Target
- java.lang.instrument 类 ClassDefinition
- java.lang.instrument 接口 ClassFileTransformer
- java.lang.instrument 类 IllegalClassFormatException
- java.lang.instrument 接口 Instrumentation
- java.lang.instrument (Java 2 Platform SE 5.0)
- 软件包 java.lang.instrument
- java.lang.instrument 类 UnmodifiableClassException
- java.lang.management 接口 ClassLoadingMXBean
- java.lang.management 接口 CompilationMXBean
- java.lang.management 接口 GarbageCollectorMXBean
- java.lang.management 类 ManagementFactory
- java.lang.management 类 ManagementPermission
- java.lang.management 接口 MemoryManagerMXBean
- java.lang.management 接口 MemoryMXBean
- java.lang.management 类 MemoryNotificationInfo
- java.lang.management 接口 MemoryPoolMXBean
- java.lang.management 枚举 MemoryType
- java.lang.management 类 MemoryUsage
- java.lang.management 接口 OperatingSystemMXBean
- java.lang.management (Java 2 Platform SE 5.0)
- 软件包 java.lang.management
- java.lang.management 接口 RuntimeMXBean
- java.lang.management 类 ThreadInfo
- java.lang.management 接口 ThreadMXBean
- java.lang.ref (Java 2 Platform SE 5.0)
- 软件包 java.lang.ref
- java.lang.ref 类 PhantomReference<T>
- java.lang.ref 类 Reference<T>
- java.lang.ref 类 ReferenceQueue<T>
- java.lang.ref 类 SoftReference<T>
- java.lang.ref 类 WeakReference<T>
- java.lang.reflect 类 AccessibleObject
- java.lang.reflect 接口 AnnotatedElement
- java.lang.reflect 类 Array
- java.lang.reflect 类 Constructor<T>
- java.lang.reflect 类 Field
- java.lang.reflect 接口 GenericArrayType
- java.lang.reflect 接口 GenericDeclaration
- java.lang.reflect 类 GenericSignatureFormatError
- java.lang.reflect 接口 InvocationHandler
- java.lang.reflect 类 InvocationTargetException
- java.lang.reflect 类 MalformedParameterizedTypeException
- java.lang.reflect 接口 Member
- java.lang.reflect 类 Method
- java.lang.reflect 类 Modifier
- java.lang.reflect (Java 2 Platform SE 5.0)
- 软件包 java.lang.reflect
- java.lang.reflect 接口 ParameterizedType
- java.lang.reflect 类 Proxy
- java.lang.reflect 类 ReflectPermission
- java.lang.reflect 接口 Type
- java.lang.reflect 接口 TypeVariable<D extends GenericDeclaration>
- java.lang.reflect 类 UndeclaredThrowableException
- java.lang.reflect 接口 WildcardType
- java.text 类 Annotation
- java.text 类 AttributedCharacterIterator.Attribute
- java.text 接口 AttributedCharacterIterator
- java.text 类 AttributedString
- java.text 类 Bidi
- java.text 类 BreakIterator
- java.text 接口 CharacterIterator
- java.text 类 ChoiceFormat
- java.text 类 CollationElementIterator
- java.text 类 CollationKey
- java.text 类 Collator
- java.text 类 DateFormat.Field
- java.text 类 DateFormat
- java.text 类 DateFormatSymbols
- java.text 类 DecimalFormat
- java.text 类 DecimalFormatSymbols
- java.text 类 FieldPosition
- java.text 类 Format.Field
- java.text 类 Format
- java.text 类 MessageFormat.Field
- java.text 类 MessageFormat
- java.text 类 NumberFormat.Field
- java.text 类 NumberFormat
- java.text (Java 2 Platform SE 5.0)
- 软件包 java.text
- java.text 类 ParseException
- java.text 类 ParsePosition
- java.text 类 RuleBasedCollator
- java.text 类 SimpleDateFormat
- java.text 类 StringCharacterIterator
- java.util 类 AbstractCollection<E>
- java.util 类 AbstractList<E>
- java.util 类 AbstractMap<K,V>
- java.util 类 AbstractQueue<E>
- java.util 类 AbstractSequentialList<E>
- java.util 类 AbstractSet<E>
- java.util 类 ArrayList<E>
- java.util 类 Arrays
- java.util 类 BitSet
- java.util 类 Calendar
- java.util 接口 Collection<E>
- java.util 类 Collections
- java.util 接口 Comparator<T>
- java.util 类 ConcurrentModificationException
- java.util 类 Currency
- java.util 类 Date
- java.util 类 Dictionary<K,V>
- java.util 类 DuplicateFormatFlagsException
- java.util 类 EmptyStackException
- java.util 接口 Enumeration<E>
- java.util 类 EnumMap<K extends Enum<K>,V>
- java.util 类 EnumSet<E extends Enum<E>>
- java.util 接口 EventListener
- java.util 类 EventListenerProxy
- java.util 类 EventObject
- java.util 类 FormatFlagsConversionMismatchException
- java.util 接口 Formattable
- java.util 类 FormattableFlags
- java.util 枚举 Formatter.BigDecimalLayoutForm
- java.util 类 Formatter
- java.util 类 FormatterClosedException
- java.util 类 GregorianCalendar
- java.util 类 HashMap<K,V>
- java.util 类 HashSet<E>
- java.util 类 Hashtable<K,V>
- java.util 类 IdentityHashMap<K,V>
- java.util 类 IllegalFormatCodePointException
- java.util 类 IllegalFormatConversionException
- java.util 类 IllegalFormatException
- java.util 类 IllegalFormatFlagsException
- java.util 类 IllegalFormatPrecisionException
- java.util 类 IllegalFormatWidthException
- java.util 类 InputMismatchException
- java.util 类 InvalidPropertiesFormatException
- java.util 接口 Iterator<E>
- java.util 类 LinkedHashMap<K,V>
- java.util 类 LinkedHashSet<E>
- java.util 类 LinkedList<E>
- java.util 接口 List<E>
- java.util 接口 ListIterator<E>
- java.util 类 ListResourceBundle
- java.util 类 Locale
- java.util 接口 Map.Entry<K,V>
- java.util 接口 Map<K,V>
- java.util 类 MissingFormatArgumentException
- java.util 类 MissingFormatWidthException
- java.util 类 MissingResourceException
- java.util 类 NoSuchElementException
- java.util 类 Observable
- java.util 接口 Observer
- java.util (Java 2 Platform SE 5.0)
- 软件包 java.util
- java.util 类 PriorityQueue<E>
- java.util 类 Properties
- java.util 类 PropertyPermission
- java.util 类 PropertyResourceBundle
- java.util 接口 Queue<E>
- java.util 类 Random
- java.util 接口 RandomAccess
- java.util 类 ResourceBundle
- java.util 类 Scanner
- java.util 接口 Set<E>
- java.util 类 SimpleTimeZone
- java.util 接口 SortedMap<K,V>
- java.util 接口 SortedSet<E>
- java.util 类 Stack<E>
- java.util 类 StringTokenizer
- java.util 类 Timer
- java.util 类 TimerTask
- java.util 类 TimeZone
- java.util 类 TooManyListenersException
- java.util 类 TreeMap<K,V>
- java.util 类 TreeSet<E>
- java.util 类 UnknownFormatConversionException
- java.util 类 UnknownFormatFlagsException
- java.util 类 UUID
- java.util 类 Vector<E>
- java.util 类 WeakHashMap<K,V>
- java.util.concurrent 类 AbstractExecutorService
- java.util.concurrent 类 ArrayBlockingQueue<E>
- java.util.concurrent 接口 BlockingQueue<E>
- java.util.concurrent 类 BrokenBarrierException
- java.util.concurrent 接口 Callable<V>
- java.util.concurrent 类 CancellationException
- java.util.concurrent 接口 CompletionService<V>
- java.util.concurrent 类 ConcurrentHashMap<K,V>
- java.util.concurrent 类 ConcurrentLinkedQueue<E>
- java.util.concurrent 接口 ConcurrentMap<K,V>
- java.util.concurrent 类 CopyOnWriteArrayList<E>
- java.util.concurrent 类 CopyOnWriteArraySet<E>
- java.util.concurrent 类 CountDownLatch
- java.util.concurrent 类 CyclicBarrier
- java.util.concurrent 接口 Delayed
- java.util.concurrent 类 DelayQueue<E extends Delayed>
- java.util.concurrent 类 Exchanger<V>
- java.util.concurrent 类 ExecutionException
- java.util.concurrent 接口 Executor
- java.util.concurrent 类 ExecutorCompletionService<V>
- java.util.concurrent 类 Executors
- java.util.concurrent 接口 ExecutorService
- java.util.concurrent 接口 Future<V>
- java.util.concurrent 类 FutureTask<V>
- java.util.concurrent 类 LinkedBlockingQueue<E>
- java.util.concurrent (Java 2 Platform SE 5.0)
- 软件包 java.util.concurrent
- java.util.concurrent 类 PriorityBlockingQueue<E>
- java.util.concurrent 类 RejectedExecutionException
- java.util.concurrent 接口 RejectedExecutionHandler
- java.util.concurrent 接口 ScheduledExecutorService
- java.util.concurrent 接口 ScheduledFuture<V>
- java.util.concurrent 类 ScheduledThreadPoolExecutor
- java.util.concurrent 类 Semaphore
- java.util.concurrent 类 SynchronousQueue<E>
- java.util.concurrent 接口 ThreadFactory
- java.util.concurrent 类 ThreadPoolExecutor.AbortPolicy
- java.util.concurrent 类 ThreadPoolExecutor.CallerRunsPolicy
- java.util.concurrent 类 ThreadPoolExecutor.DiscardOldestPolicy
- java.util.concurrent 类 ThreadPoolExecutor.DiscardPolicy
- java.util.concurrent 类 ThreadPoolExecutor
- java.util.concurrent 类 TimeoutException
- java.util.concurrent 枚举 TimeUnit
- java.util.concurrent.atomic 类 AtomicBoolean
- java.util.concurrent.atomic 类 AtomicInteger
- java.util.concurrent.atomic 类 AtomicIntegerArray
- java.util.concurrent.atomic 类 AtomicIntegerFieldUpdater<T>
- java.util.concurrent.atomic 类 AtomicLong
- java.util.concurrent.atomic 类 AtomicLongArray
- java.util.concurrent.atomic 类 AtomicLongFieldUpdater<T>
- java.util.concurrent.atomic 类 AtomicMarkableReference<V>
- java.util.concurrent.atomic 类 AtomicReference<V>
- java.util.concurrent.atomic 类 AtomicReferenceArray<E>
- java.util.concurrent.atomic 类 AtomicReferenceFieldUpdater<T,V>
- java.util.concurrent.atomic 类 AtomicStampedReference<V>
- java.util.concurrent.atomic (Java 2 Platform SE 5.0)
- 软件包 java.util.concurrent.atomic
- java.util.concurrent.locks 类 AbstractQueuedSynchronizer
- java.util.concurrent.locks 接口 Condition
- java.util.concurrent.locks 接口 Lock
- java.util.concurrent.locks 类 LockSupport
- java.util.concurrent.locks (Java 2 Platform SE 5.0)
- 软件包 java.util.concurrent.locks
- java.util.concurrent.locks 接口 ReadWriteLock
- java.util.concurrent.locks 类 ReentrantLock
- java.util.concurrent.locks 类 ReentrantReadWriteLock
- java.util.concurrent.locks 类 ReentrantReadWriteLock.ReadLock
- java.util.concurrent.locks 类 ReentrantReadWriteLock.WriteLock
- java.util.jar 类 Attributes
- java.util.jar 类 Attributes.Name
- java.util.jar 类 JarEntry
- java.util.jar 类 JarException
- java.util.jar 类 JarFile
- java.util.jar 类 JarInputStream
- java.util.jar 类 JarOutputStream
- java.util.jar 类 Manifest
- java.util.jar 类 Pack200
- java.util.jar 接口 Pack200.Packer
- java.util.jar 接口 Pack200.Unpacker
- java.util.jar (Java 2 Platform SE 5.0)
- 软件包 java.util.jar
- java.util.logging 类 ConsoleHandler
- java.util.logging 类 ErrorManager
- java.util.logging 类 FileHandler
- java.util.logging 接口 Filter
- java.util.logging 类 Formatter
- java.util.logging 类 Handler
- java.util.logging 类 Level
- java.util.logging 类 Logger
- java.util.logging 接口 LoggingMXBean
- java.util.logging 类 LoggingPermission
- java.util.logging 类 LogManager
- java.util.logging 类 LogRecord
- java.util.logging 类 MemoryHandler
- java.util.logging (Java 2 Platform SE 5.0)
- 软件包 java.util.logging
- java.util.logging 类 SimpleFormatter
- java.util.logging 类 SocketHandler
- java.util.logging 类 StreamHandler
- java.util.logging 类 XMLFormatter
- java.util.prefs 类 AbstractPreferences
- java.util.prefs 类 BackingStoreException
- java.util.prefs 类 InvalidPreferencesFormatException
- java.util.prefs 类 NodeChangeEvent
- java.util.prefs 接口 NodeChangeListener
- java.util.prefs (Java 2 Platform SE 5.0)
- 软件包 java.util.prefs
- java.util.prefs 类 PreferenceChangeEvent
- java.util.prefs 接口 PreferenceChangeListener
- java.util.prefs 类 Preferences
- java.util.prefs 接口 PreferencesFactory
- java.util.regex 类 Matcher
- java.util.regex 接口 MatchResult
- java.util.regex (Java 2 Platform SE 5.0)
- 软件包 java.util.regex
- java.util.regex 类 Pattern
- java.util.regex 类 PatternSyntaxException
- java.util.zip 类 Adler32
- java.util.zip 类 CheckedInputStream
- java.util.zip 类 CheckedOutputStream
- java.util.zip 接口 Checksum
- java.util.zip 类 CRC32
- java.util.zip 类 DataFormatException
- java.util.zip 类 Deflater
- java.util.zip 类 DeflaterOutputStream
- java.util.zip 类 GZIPInputStream
- java.util.zip 类 GZIPOutputStream
- java.util.zip 类 Inflater
- java.util.zip 类 InflaterInputStream
- java.util.zip (Java 2 Platform SE 5.0)
- 软件包 java.util.zip
- java.util.zip 类 ZipEntry
- java.util.zip 类 ZipException
- java.util.zip 类 ZipFile
- java.util.zip 类 ZipInputStream
- java.util.zip 类 ZipOutputStream
java.util 类 Formatter
java.lang.Object └java.util.Formatter
- 所有已实现的接口:
- Closeable, Flushable
public final class Formatter
- extends Object
- implements Closeable, Flushable
printf 风格的格式字符串的解释程序。此类提供了对布局对齐和排列的支持,以及对数值、字符串和日期/时间数据的常规格式和特定于语言环境的输出的支持。支持诸如 byte
、 BigDecimal
和 Calendar
等常见 Java 类型。任意用户类型的受限格式化定制都是通过 Formattable
接口提供的。
Formatter 对于多线程访问而言没必要是安全的。线程安全是可选的,它对此类中的方法用户负责。
Java 语言的格式化输出在很大程度上受到 C 语言 printf
的启发。虽然一些格式字符串与 C 类似,但已进行了某些定制,以适应 Java 语言,并且利用了其中一些特性。此外,Java 的格式比 C 的格式更严格;例如,如果转换与标志不兼容,则会抛出异常。在 C 中,不适用的标志会被忽略。这样,便于 C 程序员识别这些格式字符串,而又不必与 C 中的那些标志完全兼容。
所期望用法的示例:
StringBuilder sb = new StringBuilder(); // Send all output to the Appendable object sb Formatter formatter = new Formatter(sb, Locale.US); // Explicit argument indices may be used to re-order output. formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d") // -> " d c b a" // Optional locale as the first argument can be used to get // locale-specific formatting of numbers. The precision and width can be // given to round and align the value. formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E); // -> "e = +2,7183" // The '(' numeric flag may be used to format negative numbers with // parentheses rather than a minus sign. Group separators are // automatically inserted. formatter.format("Amount gained or lost since last statement: $ %(,.2f", balanceDelta); // -> "Amount gained or lost since last statement: $ (6,217.58)"
常见格式化请求的便捷方法是按照如下调用格式来阐明的:
// Writes a formatted string to System.out. System.out.format("Local time: %tT", Calendar.getInstance()); // -> "Local time: 13:34:18" // Writes formatted output to System.err. System.err.printf("Unable to open file '%1$s': %2$s", fileName, exception.getMessage()); // -> "Unable to open file 'food': No such file or directory"
与 C 语言的 sprintf(3)
类似,可以使用静态方法 String#format(String,Object...)String.format
来格式化 Strings:
// Format a string containing a date. import java.util.Calendar; import java.util.GregorianCalendar; import static java.util.Calendar.*; Calendar c = new GregorianCalendar(1995, MAY, 23); String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c); // -> s == "Duke's Birthday: May 23, 1995"
组织
此规范分为两部分。第一部分是摘要,包括基本的格式概念。这一部分是为那些想要快速入门并熟悉其他编程语言的格式化输出的用户准备的。第二部分是详细信息,包括具体的实现细节。它是为那些需要更精确格式化行为规范的用户准备的。
摘要
这一部分将提供对格式概念的简单概述。有关精确的行为细节,请参阅详细信息部分。
格式字符串的语法
产生格式化输出的每个方法都需要格式字符串 和参数列表。格式字符串是一个 String
,它可以包含固定文本以及一个或多个嵌入的格式说明符。请考虑以下示例:
Calendar c = ...; String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
此格式字符串是 format
方法的第一个参数。它包含三个格式说明符 " %1$tm
"、" %1$te
" 和 " %1$tY
",它们指出应该如何处理参数以及在文本的什么地方插入它们。格式字符串的其余部分是包括 "Dukes Birthday: "
和其他任何空格或标点符号的固定文本。
参数列表由传递给位于格式字符串之后的方法的所有参数组成。在上述示例中,参数列表的大小为 1,由新对象 Calendar
组成。
- 常规类型、字符类型和数值类型的格式说明符的语法如下:
%[argument_index$][flags][width][.precision]conversion
可选的 argument_index 是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 "
1$
" 引用,第二个参数由 "2$
" 引用,依此类推。可选的 flags 是修改输出格式的字符集。有效标志的集合取决于转换类型。
可选 width 是一个非负十进制整数,表明要向输出中写入的最少字符数。
可选 precision 是一个非负十进制整数,通常用来限制字符数。特定行为取决于转换类型。
所需的 conversion 是一个表明应该如何格式化参数的字符。给定参数的有效转换集合取决于参数的数据类型。
- 用来表示日期和时间类型的格式说明符的语法如下:
%[argument_index$][flags][width]conversion
可选的 argument_index、flags 和 width 的定义同上。
所需的 conversion 是一个由两字符组成的序列。第一个字符是
't'
或'T'
。第二个字符表明所使用的格式。这些字符类似于但不完全等同于那些由 GNUdate
和 POSIXstrftime(3c)
定义的字符。 - 与参数不对应的格式说明符的语法如下:
%[flags][width]conversion
可选 flags 和 width 的定义同上。
所需的 conversion 是一个表明要在输出中所插内容的字符。
转换
转换可分为以下几类:
- 常规 - 可应用于任何参数类型
- 字符 - 可应用于表示 Unicode 字符的基本类型:
char
、Character
、byte
、Byte
、short
和Short
。当Character.isValidCodePoint(int)
返回true
时,可将此转换应用于int
和Integer
类型 - 数值
- 整数 - 可应用于 Java 的整数类型:
byte
、Byte
、short
、Short
、int
、Integer
、long
、Long
和BigInteger
- 浮点 - 可用于 Java 的浮点类型:
float
、Float
、double
、Double
和BigDecimal
- 整数 - 可应用于 Java 的整数类型:
- 日期/时间 - 可应用于 Java 的、能够对日期或时间进行编码的类型:
long
、Long
、Calendar
和Date
。 - 百分比 - 产生字面值
'%'
('\u0025'
) - 行分隔符 - 产生特定于平台的行分隔符
下表总结了受支持的转换。由大写字符(如 'B'
、 'H'
、 'S'
、 'C'
、 'X'
、 'E'
、 'G'
、 'A'
和 'T'
)表示的转换与由相应的小写字符的转换等同,根据流行的 Locale
规则将结果转换为大写形式除外。后者等同于 String.toUpperCase()
的以下调用
out.toUpperCase()
转换 | 参数类别 | 说明 |
---|---|---|
'b' , 'B' | 常规 | 如果参数 arg 为 null ,则结果为 " false "。如果 arg 是一个 boolean 值或 Boolean ,则结果为 String.valueOf() 返回的字符串。否则结果为 "true"。 |
'h' , 'H' | 常规 | 如果参数 arg 为 null ,则结果为 " null "。否则,结果为调用 Integer.toHexString(arg.hashCode()) 得到的结果。 |
's' , 'S' | 常规 | 如果参数 arg 为 null ,则结果为 " null "。如果 arg 实现 Formattable ,则调用 arg.formatTo 。否则,结果为调用 arg.toString() 得到的结果。 |
'c' , 'C' | 字符 | 结果是一个 Unicode 字符 |
'd' | 整数 | 结果被格式化为十进制整数 |
'o' | 整数 | 结果被格式化为八进制整数 |
'x' , 'X' | 整数 | 结果被格式化为十六进制整数 |
'e' , 'E' | 浮点 | 结果被格式化为用计算机科学记数法表示的十进制数 |
'f' | 浮点 | 结果被格式化为十进制数 |
'g' , 'G' | 浮点 | 根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化。 |
'a' , 'A' | 浮点 | 结果被格式化为带有效位数和指数的十六进制浮点数 |
't' , 'T' | 日期/时间 | 日期和时间转换字符的前缀。请参阅日期/时间转换。 |
'%' | 百分比 | 结果为字面值 '%' ( '\u0025' ) |
'n' | 行分隔符 | 结果为特定于平台的行分隔符 |
任何未明确定义为转换的字符都是非法字符,并且都被保留,以供将来扩展使用。
日期/时间转换
以下日期和时间转换的后缀字符是为 't'
和 'T'
转换定义的。这些类型相似于但不完全等同于那些由 GNU date
和 POSIX strftime(3c)
定义的类型。提供其他转换类型是为了访问特定于 Java 的功能(如将 'L'
用作秒中的毫秒)。
以下转换字符用来格式化时间:
'H' | 24 小时制的小时,被格式化为必要时带前导零的两位数,即 00 - 23 。 |
'I' | 12 小时制的小时,被格式化为必要时带前导零的两位数,即 01 - 12 。 |
'k' | 24 小时制的小时,即 0 - 23 。 |
'l' | 12 小时制的小时,即 1 - 12 。 |
'M' | 小时中的分钟,被格式化为必要时带前导零的两位数,即 00 - 59 。 |
'S' | 分钟中的秒,被格式化为必要时带前导零的两位数,即 00 - 60 (" 60 " 是支持闰秒所需的一个特殊值)。 |
'L' | 秒中的毫秒,被格式化为必要时带前导零的三位数,即 000 - 999 。 |
'N' | 秒中的毫微秒,被格式化为必要时带前导零的九位数,即 000000000 - 999999999 。 |
'p' | 特定于语言环境的 上午或下午 标记以小写形式表示,例如 " am " 或 " pm "。使用转换前缀 'T' 可以强行将此输出转换为大写形式。 |
'z' | 相对于 GMT 的 RFC822 格式的数字时区偏移量,例如 -0800 。 |
'Z' | 表示时区缩写形式的字符串。Formatter 的语言环境将取代参数的语言环境(如果有)。 |
's' | 自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的秒数,即 Long.MIN_VALUE/1000 与 Long.MAX_VALUE/1000 之间的差值。 |
'Q' | 自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的毫秒数,即 Long.MIN_VALUE 与 Long.MAX_VALUE 之间的差值。 |
以下转换字符用来格式化日期:
'B' | 特定于语言环境的月份全称,例如 "January" 和 "February" 。 |
'b' | 特定于语言环境的月份简称,例如 "Jan" 和 "Feb" 。 |
'h' | 与 'b' 相同。 |
'A' | 特定于语言环境的星期几全称,例如 "Sunday" 和 "Monday" |
'a' | 特定于语言环境的星期几简称,例如 "Sun" 和 "Mon" |
'C' | 除以 100 的四位数表示的年份,被格式化为必要时带前导零的两位数,即 00 - 99 |
'Y' | 年份,被格式化为必要时带前导零的四位数(至少),例如, 0092 等于格里高利历的 92 CE。 |
'y' | 年份的最后两位数,被格式化为必要时带前导零的两位数,即 00 - 99 。 |
'j' | 一年中的天数,被格式化为必要时带前导零的三位数,例如,对于格里高利历是 001 - 366 。 |
'm' | 月份,被格式化为必要时带前导零的两位数,即 01 - 13 。 |
'd' | 一个月中的天数,被格式化为必要时带前导零两位数,即 01 - 31 |
'e' | 一个月中的天数,被格式化为两位数,即 1 - 31 。 |
以下转换字符用于格式化常见的日期/时间组合。
'R' | 24 小时制的时间,被格式化为 "%tH:%tM" |
'T' | 24 小时制的时间,被格式化为 "%tH:%tM:%tS" 。 |
'r' | 12 小时制的时间,被格式化为 "%tI:%tM:%tS %Tp" 。上午或下午标记 ( '%Tp' ) 的位置可能与语言环境有关。 |
'D' | 日期,被格式化为 "%tm/%td/%ty" 。 |
'F' | ISO8601 格式的完整日期,被格式化为 "%tY-%tm-%td" 。 |
'c' | 日期和时间,被格式化为 "%ta %tb %td %tT %tZ %tY" ,例如 "Sun Jul 20 16:17:00 EDT 1969" 。 |
任何未明确定义为转换的字符都是非法字符,并且都被保留,以供将来扩展使用。
标志
下表总结了受支持的标志。y 表示该标志受指示参数类型支持。
标志 | 常规 | 字符 | 整数 | 浮点 | 日期/时间 | 说明 |
---|---|---|---|---|---|---|
'-' | y | y | y | y | y | 结果将是左对齐的。 |
'#' | y1 | - | y3 | y | - | 结果应该使用依赖于转换类型的替换形式 |
'+' | - | - | y4 | y | - | 结果总是包括一个符号 |
'' | - | - | y4 | y | - | 对于正值,结果中将包括一个前导空格 |
'0' | - | - | y | y | - | 结果将用零来填充 |
',' | - | - | y2 | y5 | - | 结果将包括特定于语言环境的组分隔符 |
'(' | - | - | y4 | y5 | - | 结果将是用圆括号括起来的负数 |
1 取决于 Formattable
的定义。
2 只适用于 'd'
转换。
3 只适用于 'o'
、 'x'
和 'X'
转换。
4 对 BigInteger
应用 'd'
、 'o'
、 'x'
和 'X'
转换时,或者对 byte
及 Byte
、 short
及 Short
、 int
及 Integer
、 long
及 Long
分别应用 'd'
转换时适用。
5 只适用于 'e'
、 'E'
、 'f'
、 'g'
和 'G'
转换。
任何未显式定义为标志的字符都是非法字符,并且都被保留,以供扩展使用。
宽度
宽度是将向输出中写入的最少字符数。对于行分隔符转换,不适用宽度,如果提供宽度,则会抛出异常。
精度
对于常规参数类型,精度是将向输出中写入的最多字符数。
对于浮点转换 'e'
、 'E'
和 'f'
,精度是小数点分隔符后的位数。如果转换是 'g'
或 'G'
,那么精度是舍入计算后所得数值的所有位数。如果转换是 'a'
或 'A'
,则不必指定精度。
对于字符、整数和日期/时间参数类型转换,以及百分比和行分隔符转换,精度是不适用的;如果提供精度,则会抛出异常。
参数索引
参数索引是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 " 1$
" 引用,第二个参数由 " 2$
" 引用,依此类推。
根据位置引用参数的另一种方法是使用 '<'
( '\u003c'
) 标志,这将会重用以前格式说明符的参数。例如,以下两条语句产生的字符相同:
Calendar c = ...; String s1 = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c); String s2 = String.format("Duke's Birthday: %1$tm %<$te,%<$tY", c);
详细信息
这一部分将提供格式化行为规范方面的细节,其中包括条件和异常、受支持的数据类型、本地化以及标志、转换和数据类型之间的交互。有关格式化概念的概述,请参阅摘要。
任何未明确定义为转换、日期/时间转换前缀或标志的字符都是非法字符,并且这些字符都被保留,以供未来扩展使用。在格式字符串中使用这样的字符会导致抛出 UnknownFormatConversionException
或 UnknownFormatFlagsException
。
如果格式说明符包含带有无效值或不受支持的其他值的宽度或精度,则将分别抛出 IllegalFormatWidthException
或 IllegalFormatPrecisionException
。
如果格式说明符包含不适用于对应参数的转换字符,则将抛出 IllegalFormatConversionException
。
所有指定异常都可能被 Formatter
的任何 format
方法以及任何 format
的便捷方法抛出,比如 String#format(String,Object...)String.format
和 java.io.PrintStream#printf(String,Object...)PrintStream.printf
。 String.format} and PrintStream.printf
.
由大写字符(如 'B'
、 'H'
、 'S'
、 'C'
、 'X'
、 'E'
、 'G'
、 'A'
和 'T'
)表示的转换与那些相应的小写字符表示的转换相同,根据流行的 Locale
规则将结果转换成大写形式除外。结果等同于 String.toUpperCase()
的以下调用
out.toUpperCase()
常规
以下常规转换可应用于任何参数类型:
'b' | '\u0062' | 将生成 " true " 或 " false ",由 Boolean.toString(boolean) 返回。如果参数为 如果给出 |
'B' | '\u0042' | 'b' 的大写形式。 |
'h' | '\u0068' | 生成一个表示对象的哈希码值的字符串。 如果参数 arg 为 如果给出 |
'H' | '\u0048' | 'h' 的大写形式。 |
's' | '\u0073' | 生成一个字符串。 如果参数为 如果给出 |
'S' | '\u0053' | 's' 的大写形式。 |
以下标志应用于常规转换:
'-' | '\u002d' | 将输出左对齐。根据需要在转换值结尾处添加空格 ( '\u0020' ),以满足字段的最小宽度要求。如果没有提供宽度,则将抛出 MissingFormatWidthException 。如果没有给出此标志,则输出将是右对齐的。 |
'#' | '\u0023' | 要求输出使用替换形式。此形式的定义通过转换指定。 |
宽度是将向输出中写入的最少字符数。如果转换值的长度小于宽度,则用 ''
( \u0020'
) 填充输出,直到字符总数等于宽度为止。默认情况下,是在左边进行填充。如果给出 '-'
标志,则在右边进行填充。如果没有指定宽度,则没有最小宽度。
精度是将向输出中写入的最多字符数。精度的应用要先于宽度,因此,即使宽度大于精度,输出也将被截取为 precision
字符。如果没有指定精度,则对字符数没有明确限制。
字符
此转换可应用于 char
、 Character
、 byte
、 Byte
、 short
和 Short
。当 Character.isValidCodePoint(int)
返回 true
时,此转换也可应用于 int
和 Integer
。如果返回 false
,则将抛出 IllegalFormatCodePointException
。
'c' | '\u0063' | 将参数格式化为《Unicode Character Representation》中描述的 Unicode 字符。在该参数表示增补字符的情况下,它可能是多个 16 位 char 。如果给出 |
'C' | '\u0043' | 'c' 的大写形式。 |
'-'
标志是为应用常规转换而定义的。如果给出 '#'
标志,则将抛出 FormatFlagsConversionMismatchException
。
宽度是为了实现常规转换而定义的。
精度不适用。如果指定精度,则将抛出 IllegalFormatPrecisionException
。
数值
数值转换分为以下几类:
- Byte、Short、Integer 和 Long
- BigInteger
- Float 和 Double
- BigDecimal
将根据以下算法对数值类型进行格式化:
数字本地化算法
在获得数字的整数部分、小数部分和指数(适用于数据类型)之后,将应用以下转换:
- 将字符串中的每个数字字符 d 都替换为特定于语言环境的数字,该数字是相对于当前语言环境的零数字 z 来计算的;即 d-
'0'
+z。 - 如果存在小数点分隔符,则用特定于语言环境的小数点分隔符替换。
- 如果给出
','
('\u002c'
) 标志,则插入特定于语言环境的组分隔符,这是通过从最低位到最高位浏览字符串的整数部分并不时插入该语言环境组大小定义的分隔符来实现的。 - 如果给出
'0'
标志,则在符号字符(如果有的话)之后、第一个非零数字前插入特定于语言环境的零数字,直到字符串长度等于所要求的字段宽度。 - 如果该值为负,并且给出了
'('
标志,那么预先考虑'('
('\u0028'
),并追加一个')'
('\u0029'
)。 - 如果该值为负(或者为浮点负零),并且没有给出
'('
标志,那么预先考虑'-'
('\u002d'
)。 - 如果给出
'+'
标志,并且该值为正或零(或者为浮点正零),那么将预先考虑'+'
('\u002b'
)。
如果该值为 NaN 或正无穷大,则分别输出文本字符串 "NaN" 或 "Infinity"。如果该值为负无穷大,那么输出将是 "(Infinity)";否则如果给出 '('
标志,那么输出将是 "-Infinity"。这些值都没有被本地化。
Byte、Short、Integer 和 Long
以下转换可应用于 byte
、 Byte
、 short
、 Short
、 int
、 Integer
、 long
和 Long
。
'd' | '\u0054' | 将参数格式化为十进制整数。应用本地化算法。 如果给出 如果给出 |
'o' | '\u006f' | 将参数格式化为以 8 为基数的整数。不应用本地化。 如果 x 为负,那么结果将是通过将 2n 添加到值中产生的一个无符号值,其中 如果给出 如果给出 如果给出 |
'x' | '\u0078' | 将参数格式化为以 16 为基数的整数。不应用本地化。 如果 x 为负,那么结果将为把 2n 添加到值中产生的一个无符号值,其中 如果给出 如果给出 如果给出 |
'X' | '\u0058' | 'x' 的大写形式。将表示数字的整个字符串转换为大写,其中包括 'x' (如果有的话) 和所有十六进制数字 'a' - 'f' ( '\u0061' - '\u0066' )。 |
如果该转换是 'o'
、 'x'
或 'X'
转换,并且给出了 '#'
和 '0'
标志,那么结果将包含基数指示符(对于八进制是 '0'
,对于十六进制是 '0'
或 "0x"
)、一定数量的零(基于宽度)和该值。
如果没有给出 '-'
标志,则在符号前填充空格。
以下标志应用于数值整数转换:
'+' | '\u002b' | 要求所有正数的输出都包含一个正号。如果没有给出此标志,则只有负值包含符号。 如果同时给出了 |
'' | '\u0020' | 对于非负值的输出,要求包括单个额外空格 ( '\u0020' )。如果同时给出了 |
'0' | '\u0030' | 要求将前导零填充到输出中,这些零被填充到以下任意符号或基数指示符之后,以达到最小字段宽度,转换 NaN 或无穷大时除外。如果没有提供宽度,则将抛出 MissingFormatWidthException 。如果同时给出 |
',' | '\u002c' | 要求输出包括在本地化算法的“群”一节中描述的特定于语言环境的组分隔符。 |
'(' | '\u0028' | 要求输出预先考虑 '(' ( '\u0028' ),并将 ')' ( '\u0029' ) 追加到负值中。 |
如果没有给出标志,则默认格式设置如下:
width
中的输出是右对齐的- 负数以
'-'
('\u002d'
) 开始 - 正数和零不包括符号或额外的前导空格
- 不包括组分隔符
宽度是将向输出中写入的最少字符数。这包括所有符号、数字、组分隔符、基数指示符和圆括号。如果转换值的长度小于宽度,则用空格( '\u0020'
) 填充输出,直到字符总数等于宽度。默认情况下,在左边进行填补。如果给出 '-'
标志,则在右边进行填补。如果没有指定宽度,则没有最小宽度。
精度不适用。如果指定精度,则将抛出 IllegalFormatPrecisionException
。
BigInteger
以下转换可应用于 BigInteger
。
'd' | '\u0054' | 要求将输出格式化为十进制整数。应用本地化算法。 如果给出 |
'o' | '\u006f' | 要求将输出格式化为以 8 为基数的整数。不应用本地化。 如果 x 为负,那么结果将是以 如果 x 为正数或零,且给出了 如果给出 如果给出 如果给出 |
'x' | '\u0078' | 要求将输出格式化为以 16 为基数的整数。不应用本地化。 如果 x 为负,那么结果是以 如果 x 为正数或零,且给出了 如果给出 如果给出 如果给出 |
'X' | '\u0058' | 'x' 的大写形式。将表示数字的整个字符串转换为大写,其中包括 'x' (如果有的话)和所有十六进制数字 'a' - 'f' ( '\u0061' - '\u0066' )。 |
如果该转换是 'o'
、 'x'
或 'X'
,并且给出了 '#'
和 '0'
标志,那么结果将包含基数指示符(对于八进制是 '0'
,对于十六进制是 '0'
或 "0x"
)、一定数量的零(基于宽度)和该值。
如果给出 '0'
标志,并且值为负,则在符号后填充零。
如果没有给出 '-'
标志,则在符号前填充空格。
应用为 Byte、Short、Integer 和 Long 定义的所有标志。没有给出标志时的默认行为与 Byte、Short、Integer 和 Long 的行为相同。
宽度的规范与为 Byte、Short、Integer 和 Long 定义的规范相同。
精度不适用。如果指定精度,则将抛出 IllegalFormatPrecisionException
。
Float 和 Double
以下转换可应用于 float
、 Float
、 double
和 Double
。
'e' | '\u0065' | 要求使用科学记数法来格式化输出。应用本地化算法。 数值 m 的格式取决它的值。 如果 m 是 NaN 或无穷大,则分别输出文本字符串 "NaN" 或 "Infinity"。这些值都没有被本地化。 如果 m 是正零或负零,则指数将是 否则,结果是表示变量的符号和大小(绝对值)的字符串。符号的格式在本地化算法中已经描述。数值 m 的格式取决它的值。 让 n 成为满足 10n <= m < 10n+1 的惟一整数;让 a 成为 m 和 10n 的精确算术商数值,且满足 1 <= a < 10。然后将该数值解释为 a 的整数部分,因为是一个小数位数,所以后面跟着小数点分隔符,再后面是表示 a 的小数部分的小数位数,后跟指数符号 在结果中,m 或 a 的小数部分的位数等于精度。如果没有指定精度,则默认值为 如果给出 |
'E' | '\u0045' | 'e' 的大写形式。指数符号将是 'E' ( '\u0045' )。 |
'g' | '\u0067' | 要求将输出格式化为下面描述的常规科学记数形式。应用本地化算法。 在对精度进行舍入运算后,所得数值 m 的格式取决于它的值。 如果 m 大于或等于 10-4 但小于 10精度,则以十进制形式 表示它。 如果 m 小于 10-4 或者大于或等于 10精度,则以计算机科学记数法 表示它。 m 中的总有效位数等于其精度。如果没有指定精度,则其默认值为 如果给出 |
'G' | '\u0047' | 'g' 的大写形式。 |
'f' | '\u0066' | 要求使用十进制形式来格式化输出。使用本地化算法。 结果是表示参数的符号和大小(绝对值)的字符串。符号的格式在本地化算法中已经描述。数值 m 的格式取决它的值。 如果 m 是 NaN 或无穷大,则将分别输出文本字符串 "NaN" 或 "Infinity"。这些值都没有被本地化。 将数值格式化为 m 的整数部分(不带前导零),后跟小数点分隔符,再后面是表示 m 的小数部分的一个或多个十进制数字。 在结果中,m 或 a 的小数部分的位数等于精度。如果没有指定精度,则默认值为 |
'a' | '\u0061' | 要求将输出格式化为十六进制指数形式。不应用本地化。 结果是表示参数 x 的符号和大小(绝对值)的字符串。 如果 x 为负值或负零值,那么结果将以 如果 x 为正值或正零值,且给出了 数值 m 的格式取决它的值。
如果给出 |
'A' | '\u0041' | 'a' 的大写形式。表示数字的整个字符串将被转换为大写形式,其中包括 'x' ( '\u0078' ) 和 'p' ( '\u0070' 以及所有的十六进制数字 'a' - 'f' ( '\u0061' - '\u0066' )。 |
应用为 Byte、Short、Integer 和 Long 定义的所有标志。
如果给出 '#'
标志,则将始终存在小数点分隔符。
如果没有给出标志,则默认格式设置如下:
width
中的输出是右对齐的。- 负数以
'-'
开头 - 正数和正零不包括符号或额外的前导空格
- 不包括组分隔符
- 小数点分隔符只在后面有数字时才出现
宽度是将向输出中写入的最少字符数。这包括可应用的所有符号、数字、组分隔符、小数点分隔符、指数符号、基数指示符、圆括号和表示无穷大和 NaN 的字符串。如果转换值的长度小于宽度,则用空格( '\u0020'
) 填充输出,直到字符总数等于宽度。默认情况下,在左边进行填充。如果给出 '-'
标志,则在右边进行填充。如果没有指定宽度,则没有最小宽度。
如果转换是 'e'
、 'E'
或 'f'
,则精度是小数点分隔符后的位数。如果没有指定精度,则假定精度为 6
。
如果转换是 'g'
或 'G'
转换,那么精度就是舍入运算后所得数值的总有效位数。如果没有指定精度,则默认值为 6
。如果精度为 0
,则该值将为 1
。
如果转换是 'a'
或 'A'
转换,则精度是小数点分隔符后十六进制数字的位数。如果没有提供精度,则将输出 Double.toHexString(double)
返回的所有数字。
BigDecimal
以下转换可应用于 BigDecimal
。
'e' | '\u0065' | 要求使用计算机科学记数法对输出进行格式化。应用本地化算法。 数值 m 的格式取决于它的值。 如果 m 为正零或负零,则指数将为 否则,结果是表示参数的符号和大小(绝对值)的字符串。符号的格式在本地化算法中已经描述。数值 m 的格式取决于它的值。 让 n 成为满足 10n <= m < 10n+1 的惟一整数;让 a 成为 m 和 10n 的精确算术商数值,且满足 1 <= a < 10。然后将该数值解释为 a 的整数部分,因为是一个小数位数,所以后面跟着小数点分隔符,再后面是表示 a 的小数部分的小数位数,后跟指数符号 在结果中,m 或 a 的小数部分的位数等于精度。如果没有指定精度,则默认值为 如果给出 |
'E' | '\u0045' | 'e' 的大写形式。指数符号将是 'E' ( '\u0045' )。 |
'g' | '\u0067' | 要求将输出格式化为下面描述的常规科学记数形式。应用本地化算法。 在对精度进行舍入运算后,所得数值 m 的格式取决于它的值。 如果 m 大于或等于 10-4 但小于 10精度,则以十进制形式 表示它。 如果 m 小于 10-4 或者大于或等于 10精度,则以计算机科学记数法 表示它。 m 中的总的有效位数等于精度。如果没有指定精度,则默认值为 如果给出 |
'G' | '\u0047' | 'g' 的大写形式。 |
'f' | '\u0066' | 要求使用十进制形式来格式化输出。应用本地化算法。 结果是表示参数的符号和大小(绝对值)的字符串。符号的格式在本地化算法中已经描述。数值 m 的格式取决于它的值。 将该数值格式化为 m 的整数部分(不带前导零),后跟小数点分隔符,再后面是表示 m 的小数部分的一个或多个十进制数字。 在结果中,m 或 a 的小数部分的位数等于精度。如果没有指定精度,则默认值为 |
应用为 Byte、Short、Integer 和 Long 定义的所有标志。
如果给出 '#'
标志,则将始终存在小数点分隔符。
没有给出标志时的默认行为与 Float 和 Double 的行为相同。
宽度和精度的规范与为 Float 和 Double 定义的规范相同。
日期/时间
此转换可应用于 long
、 Long
、 Calendar
和 Date
。
't' | '\u0074' | 日期和时间转换字符的前缀。 |
'T' | '\u0054' | 't' 的大写形式。 |
以下日期和时间转换字符后缀是为 't'
和 'T'
转换定义的。这些类型类似于但不完全等同于 GNU date
和 POSIX strftime(3c)
定义的那些类型。提供其他转换类型是为了访问特定于 Java 的功能(例如, 'L'
用于秒中的毫秒)。
以下转换字符用来格式化时间:
'H' | '\u0048' | 24 小时制的小时,被格式化为必要时带前导零的两位数,即 00 - 23 。 00 对应午夜。 |
'I' | '\u0049' | 12 小时制的小时,被格式化为必要时带前导零的两位数,即 01 - 12 。 01 对应于 1 点钟(上午或下午)。 |
'k' | '\u006b' | 24 小时制的小时,即 0 - 23 。 0 对应于午夜。 |
'l' | '\u006c' | 12 小时制的小时,即 1 - 12 。 1 对应于上午或下午的一点钟。 |
'M' | '\u004d' | 小时中的分钟,被格式化为必要时带前导零的两位数,即 00 - 59 。 |
'S' | '\u0053' | 分钟中的秒,被格式化为必要时带前导零的两位数,即 00 - 60 (" 60 " 是支持闰秒所需的一个特殊值)。 |
'L' | '\u004c' | 秒中的毫秒,被格式化为必要时带前导零的三位数,即 000 - 999 。 |
'N' | '\u004e' | 秒中的毫微秒,被格式化为必要时带前导零的九位数,即 000000000 - 999999999 。此值的精度受基础操作系统或硬件分析的限制。 |
'p' | '\u0070' | 特定于语言环境的上午或下午标记以小写形式表示,例如 " am " 或 " pm "。使用转换前缀 'T' 可以强行将此输出转换为大写形式。(注意, 'p' 产生的输出是小写的。而 GNU date 和 POSIX strftime(3c) 产生的输出是大写的。) |
'z' | '\u007a' | 相对于 GMT 的 RFC822 格式的数字时区偏移量,例如 -0800 。 |
'Z' | '\u005a' | 表示时区的缩写形式的字符串。 |
's' | '\u0073' | 自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的秒数,也就是 Long.MIN_VALUE/1000 与 Long.MAX_VALUE/1000 之间的差值。 |
'Q' | '\u004f' | 自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的毫秒数,即 Long.MIN_VALUE 与 Long.MAX_VALUE 之间的差值。此值的精度受基础操作系统或硬件分析的限制。 |
以下转换字符用来格式化日期:
'B' | '\u0042' | 特定于语言环境的完整月份名称,例如 "January" 和 "February" 。 |
'b' | '\u0062' | 特定于语言环境的月份简称,例如 "Jan" 和 "Feb" 。 |
'h' | '\u0068' | 与 'b' 相同。 |
'A' | '\u0041' | 特定于语言环境的星期几的全称,例如 "Sunday" 和 "Monday" |
'a' | '\u0061' | 特定于语言环境的星期几的简称,例如 "Sun" 和 "Mon" |
'C' | '\u0043' | 除以 100 的四位数表示的年份,被格式化为必要时带前导零的两位数,即 00 - 99 |
'Y' | '\u0059' | 年份,被格式化为必要时带前导零的四位数(至少),例如 0092 等于格里高利历的 92 CE。 |
'y' | '\u0079' | 年份的最后两位数,被格式化为必要时带前导零的两位数,即 00 - 99 。 |
'j' | '\u006a' | 一年中的天数,被格式化为必要时带前导零的三位数,例如,对于格里高利历是 001 - 366 。 001 对应于一年中的第一天。 |
'm' | '\u006d' | 月份,被格式化为必要时带前导零的两位数,即 01 - 13 ,其中 " 01 " 是一年的第一个月,(" 13 " 是支持阴历所需的一个特殊值)。 |
'd' | '\u0064' | 一个月中的天数,被格式化为必要时带前导零的两位数,即 01 - 31 ,其中 " 01 " 是一个月的第一天。 |
'e' | '\u0065' | 一个月中的天数,被格式化为两位数,即 1 - 31 ,其中 " 1 " 是一个月中的第一天。 |
以下转换字符用于格式化常见的日期/时间组合。
'R' | '\u0052' | 24 小时制的时间,被格式化为 "%tH:%tM" |
'T' | '\u0054' | 24 小时制的时间,被格式化为 "%tH:%tM:%tS" 。 |
'r' | '\u0072' | 12 小时制的时间,被格式化为 "%tI:%tM:%tS %Tp" 。上午或下午标记 ( '%Tp' ) 的位置可能与地区有关。 |
'D' | '\u0044' | 日期,被格式化为 "%tm/%td/%ty" 。 |
'F' | '\u0046' | ISO 8601 格式的完整日期,被格式化为 "%tY-%tm-%td" 。 |
'c' | '\u0063' | 日期和时间,被格式化为 "%ta %tb %td %tT %tZ %tY" ,例如 "Sun Jul 20 16:17:00 EDT 1969" 。 |
应用为常规转换而定义的 '-'
标志。如果给出 '#'
标志,则将抛出 FormatFlagsConversionMismatchException
。
宽度是将向输出中写入的最少字符数。如果转换值的长度小于 width
,则用空格( '\u0020'
) 来填充输出,直到总字符数等于宽度。默认情况下,在左边进行填充。如果给出 '-'
标志,则在右边进行填充。如果没有指定宽度,则没有最小宽度。
精度不适用。如果指定了精度,则将抛出 IllegalFormatPrecisionException
。
百分比
该转换不对应于任何参数。
'%' | 结果是一个字面值 '%' ( '\u0025' )宽度是将向输出中写入的最少字符数,包括 应用为常规转换而定义的 精度不适用。如果指定精度,则将抛出 |
行分隔符
该转换不对应于任何参数。
'n' | 由 System.getProperty("line.separator") 返回的特定于平台的行分隔符。 |
标志、宽度和精度都不可用。如果提供这三者,则会分别抛出 IllegalFormatFlagsException
、 IllegalFormatWidthException
和 IllegalFormatPrecisionException
。
参数索引
格式说明符可以通过三种方式引用参数:
- 显式索引 是在格式说明符中包含参数索引时使用。参数索引是一个十进制整数,用于指示参数在参数列表中的位置。第一个参数由 "
1$
" 引用,第二个参数由 "2$
" 引用,依此类推。可以多次引用任何一个参数。例如:
formatter.format("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s", "a", "b", "c", "d") // -> "d c b a d c b a"
- 相对索引 是在格式说明符中包含
'<'
('\u003c'
) 标志时使用,该标志将导致重用以前格式说明符的参数。如果不存在以前的参数,则抛出MissingFormatArgumentException
。formatter.format("%s %s %<s %<s", "a", "b", "c", "d") // -> "a b b b" // "c" and "d" are ignored because they are not referenced
- 普通索引 在格式说明符中既不包含参数索引也不包含
'<'
标志时使用。每个使用普通索引的格式说明符都分配了一个连续隐式索引,分配在独立于显式索引或相对索引使用的参数列表中。formatter.format("%s %s %s %s", "a", "b", "c", "d") // -> "a b c d"
可能有一个使用所有索引形式的格式字符串,例如:
formatter.format("%2$s %s %<s %s", "a", "b", "c", "d") // -> "b a a b" // "c" and "d" are ignored because they are not referenced
参数的最大数量受到《Java Machine Specification》定义的 Java 数组 的最大维数的限制。如果参数索引与可用参数不对应,则抛出 MissingFormatArgumentException
。
如果参数多于格式说明符,则忽略额外的参数。
除非另行指定,否则向此类中的任何方法或构造方法传递 null
参数都将抛出 NullPointerException
。
- 从以下版本开始:
- 1.5
嵌套类摘要 | |
---|---|
staticclass | Formatter.BigDecimalLayoutForm |
构造方法摘要 | |
---|---|
Formatter() 构造一个新 formatter。 | |
Formatter(Appendablea) 构造一个带指定目标文件的新 formatter。 | |
Formatter(Appendablea, Localel) 构造一个带指定目标文件和语言环境的新 formatter。 | |
Formatter(Filefile) 构造一个带指定文件的新 formatter。 | |
Formatter(Filefile, Stringcsn) 构造一个带指定文件和字符集的新 formatter。 | |
Formatter(Filefile, Stringcsn, Localel) 构造一个带指定文件、字符集和语言环境的新 formatter。 | |
Formatter(Localel) 构造一个带指定语言环境的新 formatter。 | |
Formatter(OutputStreamos) 构造一个带指定输出流的新 formatter。 | |
Formatter(OutputStreamos, Stringcsn) 构造一个带指定输出流和字符集的新 formatter。 | |
Formatter(OutputStreamos, Stringcsn, Localel) 构造一个带指定输出流、字符集和语言环境的新 formatter。 | |
Formatter(PrintStreamps) 构造一个带指定输出流的新 formatter。 | |
Formatter(StringfileName) 构造一个带指定文件名的新 formatter。 | |
Formatter(StringfileName, Stringcsn) 构造一个带指定文件名和字符集的新 formatter。 | |
Formatter(StringfileName, Stringcsn, Localel) 构造一个带指定文件名、字符集和语言环境的新 formatter。 |
方法摘要 | |
---|---|
void | close() 关闭此 formatter。 |
void | flush() 刷新此 formatter。 |
Formatter | format(Localel, Stringformat, Object...args) 使用指定的语言环境、格式字符串和参数,将一个格式化字符串写入此对象的目标文件中。 |
Formatter | format(Stringformat, Object...args) 使用指定格式字符串和参数将一个格式化字符串写入此对象的目标文件中。 |
IOException | ioException() 返回由此 formatter 的 |
Locale | locale() 返回构造此 formatter 时设置的语言环境。 |
Appendable | out() 返回输出的目标文件。 |
String | toString() 返回对输出的目标文件调用 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造方法详细信息
Formatter
public Formatter()
- 构造一个新 formatter。
格式化输出的目标文件是
StringBuilder
,可以通过调用out()
来检索它,还可以调用toString()
将其当前内容转换为一个字符串。对于 Java 虚拟机的此实例,所使用的语言环境是默认语言环境。
Formatter
public Formatter(Appendablea)
- 构造一个带指定目标文件的新 formatter。
对于 Java 虚拟机的此实例,所使用的语言环境是默认语言环境。
- 参数:
a
- 格式化输出的 Destination。如果a
为null
,则创建一个StringBuilder
。
Formatter
public Formatter(Localel)
- 构造一个带指定语言环境的新 formatter。
格式化输出的目标文件是
StringBuilder
,可以通过调用out()
来检索它,还可以调用toString()
将其内容转换为一个字符串。- 参数:
l
- 格式化期间应用的语言环境。如果l
为null
,则不应用本地化。
Formatter
public Formatter(Appendablea, Localel)
- 构造一个带指定目标文件和语言环境的新 formatter。
- 参数:
a
- 格式化输出的 Destination。如果a
为null
,则创建一个StringBuilder
。l
- 格式化期间应用的语言环境。如果l
为null
,则不应用本地化。
Formatter
public Formatter(StringfileName) throws FileNotFoundException
- 构造一个带指定文件名的新 formatter。
对于 Java 虚拟机的此实例,所使用的字符集是默认字符集。
对于 Java 虚拟机的此实例,所使用的语言环境是默认语言环境。
- 参数:
fileName
- 用作此 formatter 的目标文件的文件名称。如果存在该文件,则将其大小截取为零;否则创建一个新文件。将输出写入文件中,并对其进行缓冲处理。- 抛出:
SecurityException
- 如果存在安全管理器,并且checkWrite(fileName)
拒绝对文件进行写入访问。FileNotFoundException
- 如果给定的文件名称不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他一些错误
Formatter
public Formatter(StringfileName, Stringcsn) throws FileNotFoundException, UnsupportedEncodingException
- 构造一个带指定文件名和字符集的新 formatter。
对于 Java 虚拟机的此实例,所使用的语言环境是默认语言环境。
- 参数:
fileName
- 用作此 formatter 的目标文件的文件名称。如果存在该文件,则将其大小截取为零;否则创建一个新文件。将输出写入文件中,并对其进行缓冲处理。csn
- 受支持的字符集的名称- 抛出:
FileNotFoundException
- 如果给定的文件名称不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他一些错误SecurityException
- 如果存在安全管理器,并且checkWrite(fileName)
拒绝对文件进行写入访问UnsupportedEncodingException
- 如果不支持指定字符集
Formatter
public Formatter(StringfileName, Stringcsn, Localel) throws FileNotFoundException, UnsupportedEncodingException
- 构造一个带指定文件名、字符集和语言环境的新 formatter。
- 参数:
fileName
- 用作此 formatter 的目标文件的文件名称。如果存在该文件,则将其大小截取为零;否则,创建一个新文件。将输出写入文件中,并对其进行缓冲处理。csn
- 受支持的字符集的名称l
- 格式化过程中应用的语言环境。如果l
为null
,则不应用本地化。- 抛出:
FileNotFoundException
- 如果给定的文件名称不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他一些错误SecurityException
- 如果存在安全管理器,并且checkWrite(fileName)
拒绝对文件进行写入访问。UnsupportedEncodingException
- 如果不支持指定字符集
Formatter
public Formatter(Filefile) throws FileNotFoundException
- 构造一个带指定文件的新 formatter。
对于 Java 虚拟机的此实例,所使用的字符集是默认字符集。
对于 Java 虚拟机的此实例,所使用的语言环境是默认语言环境。
- 参数:
file
- 作为此 formatter 的目标文件使用的文件。如果存在该文件,则将其大小截取为零;否则,创建一个新文件。将输出写入文件中,并对其进行缓冲处理。- 抛出:
SecurityException
- 如果存在安全管理器,并且checkWrite(file.getPath())
拒绝对文件进行写入访问。FileNotFoundException
- 如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他一些错误
Formatter
public Formatter(Filefile, Stringcsn) throws FileNotFoundException, UnsupportedEncodingException
- 构造一个带指定文件和字符集的新 formatter。
对于 Java 虚拟机的此实例,所使用的语言环境是默认语言环境。
- 参数:
file
- 作为此 formatter 的目标文件使用的文件。如果存在该文件,则将其大小截取为零;否则,创建一个新文件。将输出写入文件中,并对其进行缓冲处理。csn
- 受支持的字符集的名称- 抛出:
FileNotFoundException
- 如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他一些错误SecurityException
- 如果存在安全管理器,并且checkWrite(file.getPath())
拒绝对文件进行写入访问UnsupportedEncodingException
- 如果不支持指定字符集
Formatter
public Formatter(Filefile, Stringcsn, Localel) throws FileNotFoundException, UnsupportedEncodingException
- 构造一个带指定文件、字符集和语言环境的新 formatter。
- 参数:
file
- 作为此 formatter 的目标文件使用的文件。如果存在该文件,则将其大小截取为零;否则,创建一个新文件。将输出写入文件中,并对其进行缓冲处理。csn
- 受支持的字符集的名称l
- 格式化过程中应用的语言环境。如果l
为null
,则不应用本地化。- 抛出:
FileNotFoundException
- 如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他一些错误SecurityException
- 如果存在安全管理器,并且checkWrite(file.getPath())
拒绝对文件进行写入访问。UnsupportedEncodingException
- 如果不支持指定字符集
Formatter
public Formatter(PrintStreamps)
- 构造一个带指定输出流的新 formatter。
对于 Java 虚拟机的此实例,所使用的语言环境是默认语言环境。
将字符写入给定的
PrintStream
对象,并使用该对象的字符集对其进行编码。- 参数:
ps
- 作为此 formatter 的目标文件使用的流。
Formatter
public Formatter(OutputStreamos)
- 构造一个带指定输出流的新 formatter。
对于 Java 虚拟机的此实例,所使用的字符集是默认字符集。
对于 Java 虚拟机的此实例,所使用的语言环境是默认语言环境。
- 参数:
os
- 作为此 formatter 的目标文件使用的流。将对输出进行缓冲。
Formatter
public Formatter(OutputStreamos, Stringcsn) throws UnsupportedEncodingException
- 构造一个带指定输出流和字符集的新 formatter。
对于 Java 虚拟机的此实例,所使用的语言环境是默认语言环境。
- 参数:
os
- 作为此 formatter 的目标文件使用的流。将对输出进行缓冲。csn
- 受支持的字符集的名称- 抛出:
UnsupportedEncodingException
- 如果不支持指定字符集
Formatter
public Formatter(OutputStreamos, Stringcsn, Localel) throws UnsupportedEncodingException
- 构造一个带指定输出流、字符集和语言环境的新 formatter。
- 参数:
os
- 作为此 formatter 的目标文件使用的流。将对输出进行缓冲。csn
- 受支持的字符集的名称l
- 格式化过程中应用的语言环境。如果l
为null
,则不应用本地化。- 抛出:
UnsupportedEncodingException
- 如果不支持指定字符集
方法详细信息
locale
public Locale locale()
- 返回构造此 formatter 时设置的语言环境。
此对象的带语言环境参数的
格式
方法不会更改该值。 - 返回:
- 如果没有应用本地化,则返回
null
;否则返回一个语言环境 - 抛出:
FormatterClosedException
- 如果已经通过调用close()
方法关闭此 formatter
out
public Appendable out()
- 返回输出的目标文件。
- 返回:
- 输出的目标文件
- 抛出:
FormatterClosedException
- 如果已经通过调用close()
方法关闭此 formatter
toString
public String toString()
- 返回对输出的目标文件调用
toString()
的结果。例如,以下代码将文本格式化到StringBuilder
中,然后检索得到的字符串:Formatter f = new Formatter(); f.format("Last reboot at %tc", lastRebootDate); String s = f.toString(); // -> s == "Last reboot at Sat Jan 01 00:00:00 PST 2000"
调用此方法的方式与调用 out().toString() 的方式完全相同。
out().toString()
根据针对
Appendable
的toString
的规范,返回的字符串可能否包含(也可能不包含)写入目标文件的字符。例如,缓冲器通常在toString()
中返回其内容,而流不能这样做,因为数据已被丢弃。 - 覆盖:
- 类
Object
中的toString
- 返回:
- 对输出目标文件调用
toString()
的结果 - 抛出:
FormatterClosedException
- 如果已经通过调用close()
方法关闭此 formatter
flush
public void flush()
- 刷新此 formatter。如果目标文件实现
Flushable
接口,则调用其flush
方法。刷新 formatter 会使目标文件中的所有缓冲输出都写入基础流中。
- 指定者:
- 接口
Flushable
中的flush
- 抛出:
FormatterClosedException
- 如果已经通过调用close()
方法关闭此 formatter
close
public void close()
- 关闭此 formatter。如果目标文件实现
Closeable
接口,则调用其close
方法。关闭 formatter 允许释放它可能保持(比如打开文件)的资源。如果已经关闭 formatter,则调用此方法无效。
如果试图在此 formatter 已经关闭之后调用其中除
ioException()
之外的任何方法,那么都将导致FormatterClosedException
。 - 指定者:
- 接口
Closeable
中的close
ioException
public IOException ioException()
- 返回由此 formatter 的
Appendable
方法上次抛出的IOException
异常。如果目标文件的
append()
方法从未抛出IOException
,则此方法将始终返回null
。 - 返回:
- 如果不存在这样的异常,则返回由 Appendable 或
null
上次抛出的异常。
format
public Formatter format(Stringformat, Object...args)
- 使用指定格式字符串和参数将一个格式化字符串写入此对象的目标文件中。使用的语言环境是构造此 formatter 期间定义的语言环境。
- 参数:
format
- 在格式字符串的语法中描述的格式字符串。args
- 格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则忽略额外的参数。参数的最大数量受到《Java Virtual Machine Specification》定义的 Java 数组的最大维数的限制。- 返回:
- 此 formatter
- 抛出:
IllegalFormatException
- 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、对给定格式字符串而言不够充足的参数或其他非法条件。有关所有可能的格式错误的规范,请参阅 formatter 类规范的详细信息部分。FormatterClosedException
- 如果已经通过调用close()
方法关闭此 formatter
format
public Formatter format(Localel, Stringformat, Object...args)
- 使用指定的语言环境、格式字符串和参数,将一个格式化字符串写入此对象的目标文件中。
- 参数:
l
- 格式化过程中应用的语言环境。如果l
为null
,则不应用本地化。这不会改变构造期间设置的对象的语言环境。format
- 在格式字符串的语法中描述的格式字符串args
- 格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则忽略额外的参数。参数的最大数量受到《Java Virtual Machine Specification》定义的 Java 数组的最大维数的限制- 返回:
- 此 formatter
- 抛出:
IllegalFormatException
- 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、对给定格式字符串而言不够充足的参数或其他非法条件。有关所有可能的格式错误的规范,请参阅 formatter 类规范的详细信息部分。FormatterClosedException
- 如果已经通过调用close()
方法关闭此 formatter
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论